2016-11-07 53 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.