PySpark实战:Spark基本操作
来自CloudWiki
RDD概念
Spark对内存数据的抽象,即为RDD
RDD是一种分布式、多分区、只读的数组
Spark的相关操作都是基于RDD进行的.
PySpark
PySpark是社区分布的一个工具,可以方便的应用python来使用Spark组件
PySpark借助Py4j库,可以使用Python处理RDD
https://fech.in/2018/pyspark_and_pandas/
PySpark首先利用Python创建Spark Context对象,然后用Socket与JVM上的Spark Context通信,当然这个过程需要借助Py4j库。JVM上的Spark Context负责与集群上的Spark Worker节点进行交互。
在PySpark中,对RDD提供了Transformation与Action两种操作类型。
Transformation:定义依赖关系和计算逻辑,但不会真正触发执行动作
Action: 到了Action操作才会触发真正执行操作。
常用的Transformation操作:
- map
- filter
- filterMap
- mapPartitions
- Union
- Intersection
- groupByKey
- reduceByKey
- join
- cogroup
常用Action操作及其描述如下:
- reduce
- collect
- Count
- First
- Take
- saveAsTextFile
从HDFS文件生成RDD,经过map,filter,join等多次Transformation操作,最终调用saveAsTextFile操作,将结果输出到HDFS中,以文件形式保存。