我正在创建文档的反向索引,其中输出应包含一个单词(来自文本文件),后跟出现的所有文件以及每个文件中出现的次数。像
word1:doc1.txt:doc1中出现的次数,doc2.txt:doc2,doc3中出现的次数...
word2:doc1.txt:在doc1中出现的次数,doc2.txt:在doc2,doc3中出现的次数...
我能够输出单词及其包含的文档,但是在计算每个文档中每个单词的实例时遇到麻烦。
代码:
from pyspark import SparkConf, SparkContext
sc = SparkContext("local", "app")
text=sc.wholeTextFiles('/folder')
output = text.flatMap(lambda (file,contents):[(file, word) for word in contents.lower().split()])\
.map(lambda word: (word, 1))\
.map(lambda (file, word): (word,[file]))\
.reduceByKey(lambda a,b: a+b)