大数据-玩转数据-Spark-RDD编程基础-键值对RDD(python版)
每个RDD都是一个(key,value)类型,可以应用于很多场景,是一种常见的RDD类型。
1、创建键值对
(1)、从文件中加载生成键值对
>>> lines = sc.textFile("file:///home/hadoop/temp/word.txt")
>>> pairRDD = lines.flatMap(lambda line:line.split(" ")).map(lambda word:(word,1))
>>> pairRDD.foreach(print)
('Spark', 1)
('is', 1)
('better', 1)
('Hadoop', 1)
('is', 1)
('good', 1)
('Spark', 1)
('is', 1)
('fast', 1)
>>>
(2)、通过列表创建键值对
>>> list = ["Hadoop","Spark","Hive","Spark"]
>>> rdd = sc.parallelize(list)
>>> pairRDD = rdd.map(lambda word:(word,1))
>>> pairRDD.foreach(print)
('Hadoop', 1)
('Spark', 1)
('Hive', 1)
('Spark', 1)
2、常用键值对的转换操作
(1)、reduceByKey(func)
功能是利用func函数合并相同键的值
>>> pairRDD = sc.parallelize([("Hadoop",1),("Spark",1)