Spark-Shell 常用算子练习

废话不多说,直接上代码,方便理解查询: 

// 在控制台执行:spark-shell
// ------------------------------------------------------
// 一、元素型 RDD数据
val rdd = sc.parallelize(1 to 10, 3)
rdd.glom.collect    =>  rdd: Array[Array[Int]] = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9, 10))
// transformation 转换,记录了RDD演变的过程,只有action才会触发transformation进行计算
// ------------------------------------------------------
// ====================【transformation 算子】====================
// 1、map算子:map(function) (针对每个元素做操作)
val result01 = rdd.map( t => t + 1)
result01.collect  =>  result01: Array[Int] = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11)

// 2、mapPartitions算子:mapPartitions(function) (针对每个分区做操作)
val result02 = rdd.mapPartitions(t => t.map(s => s + 1))
result02.collect   =>  result02: Array[Int] = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 11)

// 3、flatMap算子:flatMap(function)  (map+flatten)
val result03 = result05.flatMap(t => (t to 10))
result03.collect   =>  result03: Array[Int] = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 4, 5, 6, 7, 8, 9, 10, 6, 7, 8, 9, 10, 8, 9, 10, 10)

// 4、glom算子:(把每个分区的数据都放到数组中)
val result04 = rdd.glom
result04.collect   =>   result04: Array[Array[Int]] = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9, 10))

// 5、filter算子:filter(function)  (过滤)
val result05 = rdd.filter(t => t % 2
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值