PySpark常见类库及名词解释
创始人
2025-07-09 11:50:47
0

哈喽大家好,我是了不起。

PySpark是一个非常复杂的系统,我们初次接触就会感觉有很多的名词或者简称,今天就带大家看一下常见的类库和名词的解释,也是方便大家统一收藏,方便后续查找,先了解单一名词的解释,有利于快速的理解整个PySpark的运行机制。

PySpark核心类

  • pyspark.SparkContext: Spark 库的主要入口点,它表示与Spark集群的一个连接,其他重要的对象都要依赖它.SparkContext存在于Driver中,是Spark功能的主要入口。代表着与Spark集群的连接,可以在集群上创建RDD,accumulators和广播变量
  • pyspark.RDD: 是Spark的主要数据抽象概念,是Spark库中定义的一个抽象类。
  • pyspark.streaming.StreamingContext 一个定义在Spark Streaming库中定义的类, 每一个Spark Streaming 应用都必须创建这个类
  • pyspark.streaming.DStrem:离散数据流,是Spark Streaming处理数据流的主要对象
  • pyspark.sql.SparkSession: 是DataFrame和SQL函数的主要入口点。
  • pyspark.sql.DataFrame: 是Spark SQL的主要抽象对象,若干行的分布式数据,每一行都要若干个有名字的列。跟R/Python中的DataFrame 相像,有着更丰富的优化。DataFrame可以有很多种方式进行构造,例如:结构化数据文件,Hive的table, 外部数据库,RDD。
  • pyspark.sql.Column DataFrame 的列表达.
  • pyspark.sql.Row DataFrame的行数据

Spark的基本概念

Application由多个Job组成,Job由多个Stage组成,Stage由多个Task组成。Stage是作业调度的基本单位。

  • RDD:是弹性分布式数据集(Resilient Distributed Dataset)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。
  • DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系。
  • Driver Program:控制程序,负责为Application构建DAG图。
  • Cluster Manager:集群资源管理中心,负责分配计算资源。
  • Worker Node:工作节点,负责完成具体计算。
  • Executor:是运行在工作节点(Worker Node)上的一个进程,负责运行Task,并为应用程序存储数据。
  • Application:用户编写的Spark应用程序,一个Application包含多个Job。
  • Job:作业,一个Job包含多个RDD及作用于相应RDD上的各种操作。
  • Stage:阶段,是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为“阶段”。
  • Task:任务,运行在Executor上的工作单元,是Executor中的一个线程。

RDD操作的两种类型

RDD的操作有两种类型,即Transformation操作和Action操作。转换操作是从已经存在的RDD创建一个新的RDD,而行动操作是在RDD上进行计算后返回结果到 Driver。

(1) Transformation操作:

用于对RDD的创建,还包括大量的操作方法,如map、filter、groupBy、join等,RDD利用这些操作生成新的RDD。

transformation都具有 Lazy 特性,即 Spark 不会立刻进行实际的计算,只会记录执行的轨迹,只有触发Action操作的时候,它才会根据 DAG 图真正执行。

(2) action操作:

数据执行部分,通过执行count、reduce、collect等真正执行数据的计算。RDD的lazy模式,使得大部分前期工作都在transformation时已经完成。

PySpark - MLlib

Apache Spark提供了一个名为MLlib的机器学习API。PySpark也在Python中使用这个机器学习API。它支持不同类型的算法。

  • mllib.classification - spark.mllib包支持二进制分类,多类分类和回归分析的各种方法。分类中一些最流行的算法是Random Forest, Naive Bayes, Decision Tree等。
  • mllib.clustering - 聚类是一种无监督的学习问题,您可以根据某些相似概念将实体的子集彼此分组。
  • mllib.fpm - 频繁模式匹配是挖掘频繁项,项集,子序列或其他子结构,这些通常是分析大规模数据集的第一步。多年来,这一直是数据挖掘领域的一个活跃的研究课题。
  • mllib.linalg - 线性代数的MLlib实用程序。
  • mllib.recommendation - 协同过滤通常用于推荐系统。这些技术旨在填写用户项关联矩阵的缺失条目。
  • spark.mllib - 它目前支持基于模型的协同过滤,其中用户和产品由一小组可用于预测缺失条目的潜在因素描述。spark.mllib使用交替最小二乘(ALS)算法来学习这些潜在因素。
  • mllib.regression - 线性回归属于回归算法族。回归的目标是找到变量之间的关系和依赖关系。使用线性回归模型和模型摘要的界面类似于逻辑回归案例。

总结

今天给大家带来的是PySpark常见类库和名词解释,了解这些最基础的名词以后,我们看大段的相关资料就不会犯难了。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...