Spark RDD 练习题:程序计算及答案解析
Spark RDD 练习题:程序计算及答案解析
本文提供三道 Spark RDD 程序计算练习题,涵盖过滤、排序和交集等常见操作,并附带详细的代码解析和答案。帮助您深入理解 Spark RDD 的基本操作和应用。
1. 计算所有偶数的和
**题目:**给定一个RDD,包含以下元素:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],请计算其中所有偶数的和。
**答案:**21
**解析:**使用filter函数过滤出所有偶数,再使用reduce函数求和。
代码:
rdd = sc.parallelize([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
even_rdd = rdd.filter(lambda x: x % 2 == 0)
sum = even_rdd.reduce(lambda x, y: x + y)
print(sum)
2. 按照key值降序排列
**题目:**给定一个RDD,包含以下元素:[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')],请将元素按照key值降序排列。
答案:[(5, 'e'), (4, 'd'), (3, 'c'), (2, 'b'), (1, 'a')]
**解析:**使用sortByKey函数按照key值降序排列。
代码:
rdd = sc.parallelize([(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e')])
sorted_rdd = rdd.sortByKey(ascending=False)
print(sorted_rdd.collect())
3. 计算两个RDD的交集
**题目:**给定两个RDD,rdd1包含以下元素:[1, 2, 3, 4, 5],rdd2包含以下元素:[3, 4, 5, 6, 7],请计算两个RDD的交集。
答案:[3, 4, 5]
**解析:**使用intersection函数求交集。
代码:
rdd1 = sc.parallelize([1, 2, 3, 4, 5])
rdd2 = sc.parallelize([3, 4, 5, 6, 7])
result_rdd = rdd1.intersection(rdd2)
print(result_rdd.collect())
**总结:**以上三道练习题涵盖了Spark RDD的基本操作,如过滤、排序和交集。通过这些练习,您可以更加深入地理解Spark RDD的工作原理和应用。在实际应用中,您可以根据实际需求进行灵活运用。
原文地址: https://www.cveoy.top/t/topic/fVRY 著作权归作者所有。请勿转载和采集!