Spark常用算子分析与应用

Spark常用算子分析与应用1 Value型转换算子• 1) mapo 类比于mapreduce中的map操作,给定一个输入通过map函数映到成一个新的元素输出 case_1val first = sc.parallelize(List(“Hello”,“World”,“哈哈哈”,“大数据”),2)val second= first.map(_.length)second.collect case_2val first = sc.parallelize(1 to 5,2)first.
摘要由CSDN通过智能技术生成

Spark常用算子分析与应用

1 Value型转换算子

• 1) map
o 类比于mapreduce中的map操作,给定一个输入通过map函数映到成一个新的元素输出
 case_1
val first = sc.parallelize(List(“Hello”,“World”,“哈哈哈”,“大数据”),2)
val second= first.map(_.length)
second.collect
 case_2
val first = sc.parallelize(1 to 5,2)
first.map(1 to _).collect
• 2) flatMap
o 给定一个输入,将返回的所有结果打平成一个一维集合结构
 case_1
val first = sc.parallelize(1 to 5,2)
first.flatMap(1 to _).collect
 case_2
val first = sc.parallelize(List(“one”,“two”,“three”),2)
first.flatMap(x => List(x,x,x)).collect
 case_3
val first = sc.parallelize(List(“one”,“two”,“three”),2)
first.flatMap(x => List(x+"_1",x+"_2",x+"_3")).collect
• 3) mapPartitions
o 以分区为单位进行计算处理,而map是以每个元素为单位进行计算处理。
o 当在map过程中需要频繁创建额外对象时,如文件输出流操作、jdbc操作、Socket操作等时,当用mapPartitions算子
 case_1
val rdd=sc.parallelize(Seq(1,2,3,4,5),3)
var rdd2=rdd.mapPartitions(partition=>{
//在此处加入jdbc等一次初始化多次使用的代码
partition.map(num => num * num)
}
)
rdd2.max
 case_2
val rdd=sc.parallelize(Seq(1,2,3,4,5),3)
var rdd2=rdd.mapPartitions(partition=>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值