- PairRDD的创建
可以采用多种方式创建Pair RDD,其中一种主要的方式是使用map()函数来实现。
scala> val lines = sc.textFile("pathToFile")
scala> val pairRDD = lines.flatMap(line => line.split(" ")).map(word => (word, 1))
scala> pairRDD.foreach(println)
第二种创建方式:通过并行集合(数组)创建RDD
scala> val list = List("Hadoop","Spark","Hive")
scala> val rdd = sc.parallelize(list)
scala> pairRDD = rdd.map(word => (word,1))
scala> pairRDD.foreach(println)
常用的PairRDD转换操作
- reduceByKey(func) 使用func函数合并具有相同键的值
scala> pairRDD.reduceByKey((a,b)=>a+b).foreach(println)
- groupByKey(func), 对具有相同Key的Value进行分组,Key相同对Value生成一个列表
比如四个键值对:
scala> val map = Map("spark"->1, "spark"->2, "ha