spark算子大全glom_spark 算子总结

本文主要介绍spark中常用的算子的作用记忆部分示例总结。

从总体上来分,spark算子可以分为两大类:transformation和action,其中transformation触发会记录元数据信息,延迟执行,只有触发action才会真正的执行计算。

从小方向上来讲,spark算子可以分为三种类型:value类型transformation算子,key-value类型transformation算子以及action算子。what is RDD?

Internally, each RDD is characterized by five main properties:

接下来介绍常用的一些spark算子。

transformation算子

value类型transformation算子

map算子

map算子将原来RDD中的每一个数据通过map中的用户自定义方法f映射转变成新的元素。1

2

3

4

5

6

7

8scala> val rdd1 = sc.parallelize(List(1, 2, 3))

rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at :24

scala> val rdd2 = rdd1.map(_*10)

rdd2: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[1] at map at :26

scala> rdd2.collect()

res0: Array[Int] = Array(10, 20, 30)

flatMap算子

flatMap将RDD中的每一个元素通过函数f转成新的元素,并将RDD的每个集合中的元素合并成一个集合。1

2

3

4

5scala> val rdd1 = sc.parallelize(Array("a b c", "d e f", "h i j"))

rdd1: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[8] at parallelize at :24

scala> val rdd2 = rdd1.flatMap(_.split(' ')).collect

rdd2: Array[String] = Array(a, b, c, d, e, f, h, i, j)

mapPartitions算子

与map类似,但是在RDD的每个分区(块)上分别运行,所以当在T类型的RDD上运行时,func的类型必须是Iterator=> Iterator 。

glom 算子

glom将每个分区形成一个数组,内部实现返回ClommedRDD

union算子

使用union函数要保证两个RDD元素的数据类型相同,返回的RDD类型与被合并的RDD数据类型相同&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值