spark算子的分类
·
spark内置了非常多有用的算子(方法),通过对这些算子的组合就可以完成业务需要的功能,spark的编程归根结底就是对spark算子的使用,因此非常有必要对这些内置算子进行详细的归纳。
spark算子在大的方向上可以分为两类:
| 名称 | 说明 |
|---|---|
| Transformation | 变换、转换算子:不触发提交作业,只是完成作业中间过程处理;Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算。Transformation参数类型为value或者key-value的形式。 |
| Action | 行动算子:触发SparkContext提交job作业。Action 算子会触发 Spark 提交作业(Job),并将数据输出 Spark系统。 |
value 类型
| 细类型 | 算子 |
|---|---|
| 输入分区与输出分区一对一型 | map flatMap mapPartitions glom |
| 输入分区与输出分区多对一型 | union cartesain |
| -Cache型 | cache persist |
| 输出分区为输入分区子集型 | filter distinct substract sample takeSample |
| 输入分区与输出分区多对多型 | groupBy |
key-value类型
| 细类型 | 算子 |
|---|---|
| 输入分区与输出分区一对一 | mapValues |
| 对单个RDD或两个RDD聚集 | 单个RDD聚集: combineByKey reduceByKey partitionBy两个RDD聚集: Cogroup |
| 连接 | joinleftOutJoin和 rightOutJoin |
Action算子
| 细类型 | 算子 |
|---|---|
| 无输出 | foreach |
| HDFS | saveAsTextFilesaveAsObjectFile |
| Scala集合和数据类型 | collect collectAsMap reduceByKeyLocally lookup count top reduce fol aggregate |
更多推荐
所有评论(0)