有一个文本文件test.txt,里面包含如下数据: apple,banana,lemen,orange,grape,pear,peach grape,pear,peach,strawberry,cherry apple,orange,grape strawberry,cherry,lemen orange,grape,pear,apple 要求: 在Spark编程环境下实现以下任务: 1、找出包含apple的行 2、将包含apple的行按照“,”进行分割,得到一个列表集合 3、将集合中重复的单词去掉 4、将数据存储到hdfs中的/output目录下
时间: 2023-06-04 18:08:29 浏览: 152
我的回答是:
1、可以使用Spark中的filter函数过滤出包含“apple”的行,如下所示:
lines = sc.textFile("test.txt")
apple_lines = lines.filter(lambda line: "apple" in line)
2、可以使用Spark中的map函数将每个包含“apple”的行按照“,”进行分割,如下所示:
words = apple_lines.map(lambda line: line.split(","))
3、可以使用Spark中的flatMap函数将每个列表展开,并使用distinct函数去掉重复的单词,如下所示:
unique_words = words.flatMap(lambda lst: lst).distinct()
4、最后可以使用Spark中的saveAsTextFile函数将处理结果存储到HDFS的“/output”目录下,如下所示:
unique_words.saveAsTextFile("hdfs:///output")
阅读全文