PySpark常见类库及名词解释

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

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

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常见类库和名词解释,了解这些最基础的名词以后,我们看大段的相关资料就不会犯难了。

责任编辑:赵宁宁 来源: Python都知道
相关推荐

2017-04-13 09:10:06

Spark解释关系

2011-04-08 17:53:31

数据库

2011-01-04 16:20:57

linux名词解释

2014-06-25 09:22:47

大数据营销

2011-11-29 13:23:29

2009-06-23 16:52:55

J2EE缩写名词

2011-08-12 10:55:30

2011-12-02 10:37:14

JavaJ2ME

2020-02-10 11:32:11

区块链blockchain智能合约

2009-05-31 09:18:25

cnbeta

2009-06-25 11:21:36

JSF流行名词

2017-10-17 16:10:31

综合布线线缆

2020-06-03 17:50:57

机器学习人工智能模型

2010-04-30 16:58:14

Oracle Raw

2018-01-31 17:50:33

数据库MySQL优化

2009-07-23 09:31:56

数据库表连接方式

2017-03-07 15:17:26

DevOps采用趋势

2018-03-23 06:39:00

区块链物联网币种

2009-12-04 10:02:32

VS XML注释

2019-12-03 09:00:59

Oracle数据库等待事件
点赞
收藏

51CTO技术栈公众号