Spark RDD编程题:奇数平均值、单词计数和指定单词行查找
以下是一套Spark RDD编程题的试卷,包含三个问题和参考答案。
题目一
有一个文本文件,每行包含一个整数。请使用Spark RDD编程,找出所有奇数的平均值并输出。
参考答案:
from pyspark import SparkContext
sc = SparkContext('local', 'Odd Numbers Average')
# 读取文本文件并创建RDD
data = sc.textFile('file:///path/to/file.txt')
# 过滤出所有奇数
odd_numbers = data.filter(lambda x: int(x) % 2 == 1)
# 计算平均值
odd_numbers_count = odd_numbers.count()
odd_numbers_sum = odd_numbers.reduce(lambda x, y: int(x) + int(y))
odd_numbers_average = odd_numbers_sum / odd_numbers_count
# 输出结果
print('Odd Numbers Average: ', odd_numbers_average)
题目二
有一个文本文件,每行包含一个字符串。请使用Spark RDD编程,找出所有单词的出现次数并按照出现次数从高到低排序输出。
参考答案:
from pyspark import SparkContext
sc = SparkContext('local', 'Word Count')
# 读取文本文件并创建RDD
data = sc.textFile('file:///path/to/file.txt')
# 切分单词并计数
word_counts = data.flatMap(lambda x: x.split(' ')) \
.map(lambda x: (x, 1)) \
.reduceByKey(lambda x, y: x + y)
# 按照出现次数从高到低排序
sorted_word_counts = word_counts.sortBy(lambda x: x[1], ascending=False)
# 输出结果
for word, count in sorted_word_counts.collect():
print('{}: {}'.format(word, count))
题目三
有一个文本文件,每行包含一个字符串,字符串中的单词以空格分隔。请使用Spark RDD编程,找出所有包含指定单词的行并输出。
参考答案:
from pyspark import SparkContext
sc = SparkContext('local', 'Lines with Word')
# 读取文本文件并创建RDD
data = sc.textFile('file:///path/to/file.txt')
# 查找包含指定单词的行
word = 'Spark'
lines_with_word = data.filter(lambda x: word in x)
# 输出结果
for line in lines_with_word.collect():
print(line)
注意:以上参考答案仅供参考,实际实现可能会因环境和具体需求而有所不同。
原文地址: https://www.cveoy.top/t/topic/owyj 著作权归作者所有。请勿转载和采集!