1.flatMapValues;可以将一个value展开成多个value。

1 val a=sc.parallelize(List(("a", "b,c,d")))
2 a.flatMapValues(x=>x.split(",")).collect().foreach(println)
3 (a,b)
4 (a,c)
5 (a,d)

2.flatMap和Map,map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD。任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。也可以用来形成kv对;原RDD中的元素经flatmap处理后可生成多个元素

3.groupByKey,按键值组合,groupBy,mapvalues,flatmapvalues只操作values