出几道关于Spark RDD相关的几道程序计算题并给出答案
- 给定一个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)
- 给定一个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())
- 给定两个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())
``
原文地址: https://www.cveoy.top/t/topic/fQTW 著作权归作者所有。请勿转载和采集!