10.6 RDD Key-Value基本“转换”运算
SparkRDD支持键值(Key-Value)运算,Key-Value运算也是Map/Reduce的基础。
10.6.1创建范例Key-ValueRDD
#创建范例Key-ValueRDD
kvRDD1=sc.parallelize([(3,4),(3,6),(5,6),(1,2)])
kvRDD1.collect()
#列出全部Keys值
kvRDD1.keys().collect()
#列出Values值
kvRDD1.values().collect()
10.6.2使用filter筛选key运算
#使用filter筛选key<5运算
kvRDD1.filter(lambda keyValue: keyValue[0]<5).collect()
10.6.3使用filter筛选value运算
#使用filter筛选value<5运算
kvRDD1.filter(lambda keyValue:keyValue[1]<5).collect()
10.6.4 mapValues运算
#将Value的每一个值进行平方运算
kvRDD1.mapValues(lambda x: x*x).collect()
10.6.5sortByKey从小到大按照Key排序
kvRDD1.sortByKey().collect()
sortByKey() 默认的参数ascending=True,从小到大排序
10.6.6sortByKey按照Key从大到小排序
kvRDD1.sortByKey(ascending=False).collect()
10.6.7reduceByKey
#reduceByKey
kvRDD1.reduceByKey(lambda x,y: x+y).collec