2016-11-07 5 views
0

Ngramsについてこの質問をしています。並行してファイルと処理の関係、およびnグラム単位でデータを順次処理する必要性。NgramsのSPARK/SCALAでファイルを順番に処理する

物理ファイルの分割を忘れて、明らかにいくつかのnグラムを見逃してしまうngramのmapPartions処理を忘れてしまった場合、小さなファイルのNgramをローカルで処理すると、常にngramsを順次取得しますファイルの順番、イントラファイル。これは、並列パートに比べて実際の制約がない、合計するのとは対照的に私を困惑させるものです。

sc.parallelize(fn、n)が適用されたファイルで、データが含まれているi個の部分分割は、明白なresonsのために次の順次パーティションの次の単語を知る必要があります。さて、SPARKは並行して動作すると言われていますが、私は小さなファイルでこの効果を保証していますか?私はドキュメンテーションから見ることができません。それはフラットマップは常に、ファイルの順番、またはサイズ、マップの使用法でデータを返しますか?

これはおそらく非常に基本的な質問です。前もって感謝します。

PS:私は、ワイルドカードsc.wholeTexTFilesに基づいたforeachファイル処理が並行して行われると仮定しています。そうではないと私に教えてください。私はこれについていくつかの異なる意見を見た。

答えて

0

ngramsのスライドを使用しています。

Hortonworksから次に

:スライディング

()この場合にユニグラムの順序に対応するパーティションインデックスを追跡します。

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. 
関連する問題