【发布时间】:2015-11-05 22:40:11
【问题描述】:
这是一个用 pyspark ipython notebook 编写的 python 程序。我正在尝试使用 for 循环计算每个 RDD(可以被视为文件)中列表“名称”中给出的单词实例的数量。我想将每个文件中一个单词的计数存储在一个与单词同名的列表中。
例如。假设第一个 RDD 中的 harry 字数为 1214,第二个 RDD 中的单词数为 1506 n,依此类推。我想创建一个列表 harryList = [1214, 1506, 1825, 2933, 3748, 2617, 2887]
名称列表是动态的。
names = ['harry', 'hermione','ron','hagrid']
rdds = [hp1RDD,hp2RDD,hp3RDD,hp4RDD,hp5RDD,hp6RDD,hp7RDD]
for n in names:
a = []
for x in rdds:
a.append(x.flatMap(lambda line: line.split(" ")).filter(lambda word: word==n).count())
print a
使用上面的代码,我可以打印列表的内容,但无法按照上面显示的方式保存它。
【问题讨论】:
-
使用字典代替键是
harry,值是值列表 -
您只需要准确的单词吗?我的意思是,你想要 hagrid 的确切出现还是将 hagrid's 算作 hagrid?
-
将RDD转换为单词列表并使用
collections.Counter。
标签: python list loops pyspark rdd