6.Pair RDD操作
Posted braveym
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.Pair RDD操作相关的知识,希望对你有一定的参考价值。
1.1 键值对RDD操作
Mapreduce框架是把数据转为key-value,再聚合为key-values的过程。
在Spark里key-value RDD(pair RDD)同样是最常用的,在每个应用中基本都会用到。
pair RDD如何创建?不是通过sc.parallelize 创建
通常应用中是如何创建的?程序中其他RDD转的
pair RDD的元素是不是Map,而是Tuple2。
pair RDD 的Transform操作很多,是开发中最核心的部分。
1.2 Pair RDD的Transform操作函数
Pair RDD的Transform操作函数见下方,分为对单个RDD的操作,和2个RDD之间的操作。
对单个RDD的操作函数有:
map() 、reduce() 这些和Mapreduce框架没联系。
scala> val rdd=sc.parallelize(List(1,2,3,1,3,4,4,4,5))
rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[4] at parallelize at <console>:24
scala> val pairRDD=rdd.map(i=>(i,1)).reduceByKey((x,y)=>x+y)
pairRDD: org.apache.spark.rdd.RDD[(Int, Int)] = ShuffledRDD[6] at reduceByKey at <console>:26
scala> pairRDD.collect
res10: Array[(Int, Int)] = Array((4,3), (1,2), (3,2), (5,1), (2,1))
两个RDD之间的Transform操作:
1.3 Pair RDD的Action操作函数
以上是关于6.Pair RDD操作的主要内容,如果未能解决你的问题,请参考以下文章