PySpark实战:Spark基本操作

来自CloudWiki
跳转至: 导航搜索

RDD概念

Spark对内存数据的抽象,即为RDD

RDD是一种分布式、多分区、只读的数组

Spark的相关操作都是基于RDD进行的.

PySpark

PySpark是社区分布的一个工具,可以方便的应用python来使用Spark组件

PySpark借助Py4j库,可以使用Python处理RDD

Python21061802.png

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中,以文件形式保存。