2016-11-07 48 views
0

我在问这个关于Ngrams的问题。关于并行的文件和处理以及需要为ngram顺序处理数据。在NARK的SPARK/SCALA中按顺序处理文件

如果我忘记了物理文件拆分,并忘记了处理ngrams的mapPartions,这显然会丢失一些ngram,那么,如果我在本地处理一个小文件的Ngram,我注意到我总是按顺序获取ngrams文件的顺序,内部文件。这使我感到困惑,而不是对并行局部没有真正限制的求和,这里有一个理想的考虑。

将sc.parallelize(fn,n)应用于它的文件,包含数据的i < = n部分需要知道下一个连续分区的下一个单词以获得明显的resons。现在有人说SPARK可以并行工作,那么我认为在小文件中看到的效果如何呢?我无法从文档中看到。平面地图是否总是按顺序返回数据,或者文件大小,地图用法?

这可能是一个非常基本的问题。提前致谢。

PS:我假设基于通配符sc.wholeTexTFiles的foreach文件处理并行发生。请不要告诉我,事情并非如此。我在这方面看到了一些不同的意见。

回答

0

我们使用滑动ngram。

然后,从Hortonworks:

滑动()保持跟踪分区索引,在此情况下对应于unigram进行的排序的。

Compare rdd.mapPartitionsWithIndex { (i, p) => p.map { e => (i, e) } }.collect() and rdd.sliding(2).mapPartitionsWithIndex { (i, p) => p.map { e => (i, e) } }.collect() to help with the intuition.