创建基础 RDD 并进行转换
非结构化数据(日志行、图像、二进制文件)的规模正在快速增长,而 PySpark 通过 RDD 非常适合分析这类数据。在这个由 3 个部分组成的练习中,您将编写代码,从《威廉·莎士比亚全集》(Complete Works of William Shakespeare) 中找出最常见的单词。
实现词频统计程序的大致步骤如下:
- 从
Complete_Shakespeare.txt文件创建一个基础 RDD。 - 使用 RDD 转换,将基础 RDD 的每个元素拆分为一个很长的单词列表。
- 从数据中移除停用词。
- 创建键值对 RDD,其中每个元素是
('w', 1)形式的二元组。 - 按键(单词)对键值对 RDD 的元素分组,并将它们的值相加。
- 交换键(单词)和值(计数),使键为计数、值为单词。
- 最后按降序排序该 RDD,并打印出现频率最高的 10 个单词及其频次。
在本练习的第一部分,您将从 Complete_Shakespeare.txt 文件创建一个基础 RDD,并将其转换为一个长的单词列表。
请注意,您的工作区中已经提供了 SparkContext sc。变量 file_path(指向 Complete_Shakespeare.txt 文件的路径)也已为您加载。
本练习是课程的一部分
使用 PySpark 的大数据基础
练习说明
- 创建一个名为
baseRDD的 RDD,用于从file_path读取每一行。 - 将
baseRDD转换为一个长的单词列表,并创建新的splitRDD。 - 统计
splitRDD中单词的总数。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create a baseRDD from the file path
baseRDD = sc.____(file_path)
# Split the lines of baseRDD into words
splitRDD = baseRDD.____(lambda x: x.split())
# Count the total number of words
print("Total number of words in splitRDD:", splitRDD.____())