0
我想閱讀一個相當大的文檔,並從中提取N-gram(N個單詞的連續序列)。我也想按頻率升序排序。雖然我知道這是字數統計的延伸,但我不知道如何在Pyspark中做到這一點。任何幫助表示讚賞。Pyspark的Ngram頻率排名
我想閱讀一個相當大的文檔,並從中提取N-gram(N個單詞的連續序列)。我也想按頻率升序排序。雖然我知道這是字數統計的延伸,但我不知道如何在Pyspark中做到這一點。任何幫助表示讚賞。Pyspark的Ngram頻率排名
from toolz.curried import sliding_window
from operator import add, itemgetter
rdd = sc.textFile("README.md")
tokens = rdd.map(str.split)
counts = (tokens
.flatMap(sliding_window(3))
.map(lambda x: (x, 1))
.reduceByKey(add))
counts.top(3, key=itemgetter(1))
## [(('command,', 'which', 'should'), 2),
## (('on', 'how', 'to'), 2),
## (('Please', 'refer', 'to'), 2)]
限制這種方法的一個可能的解決方案是非常相同像往常一樣 - 它在逐行的基礎上運行,所以如果文件跨越多行,你不會得到正克跨越線路界限。
可以通過跟蹤行號和位置或使用wholeTextFiles
進行更正。