Python RDD API如何仅用RDD实现按人名分组统计数值总和
实现思路
- 第一步:调用
SparkContext.textFile()方法加载目标文本文件,生成初始RDD,每行文本作为RDD的一个独立元素 - 第二步:对每行数据做格式转换:按逗号分割字符串,取索引为2的第三个字段作为分组键(姓名),索引为3的第四个字段转为整数类型作为值,产出键值对格式的RDD
- 第三步:调用
reduceByKey()算子对相同姓名对应的分值做累加运算,得到每个姓名的总分 - 第四步:调用
collect()算子将最终计算结果拉取到Driver端,即可得到目标格式的输出
示例代码(Python)
# sc为已完成初始化的SparkContext对象 res = sc.textFile("你的文件路径") \ .map(lambda x: x.split(",")) \ .map(lambda item: (item[2], int(item[3]))) \ .reduceByKey(lambda a, b: a + b) \ .collect() print(res)
内容的提问来源于stack exchange,提问作者Lucas
相关产品推荐
相关产品推荐

