我有一个文件列表,我将每个文件拆分为一个单词列表,并计算文件中每个单词的数量;我的元组现在看起来像:
[('fileName1',[('word1',n), ('word2',n), ('word3',n), ('word4',n)],
[('fileName2',[('word1',n), ('word2',n), ('word3',n), ('word4',n)],
...
[('fileNameM',[('word1',n), ('word2',n), ('word3',n), ('word4',n)]]
(n—文件中的字数)
现在我需要将每个n(对于每个文件名)除以总数,如:
(tn-总数)
[('fileNameM',[('word1',n/tn), ('word2',n/tn), ('word3',n/tn), ('word4',n/tn)]]
不要改变元组的结构
我成功地创建了新的RDD,如:
[(('fileNameM',[('word1',n), ('word2',n), ('word3',n), ('word4',n)]), tn]
由
newRDD = oldRDD.map(lambda f: (f,sum(n for w,n in f[1]))
但是如果你仔细看一看,tuble的结构发生了很大的变化,并不能解决我的问题。你知道吗
我试过这个,但还是有麻烦。你知道吗
newRDD = oldRDD.map(lambda f: (f[0], [w,n/sum(n for w,n in f[1]) for w,n in f[1]]))
非常感谢
目前没有回答
相关问题 更多 >
编程相关推荐