2016-11-30 7 views
3

私がしたら、以下のようなものです。sc.textFileの後のzipWithIndexは、正しい行番号を与えますか?

val rdd = sc.textFile("someFile.txt") 
val rddWithLines = rdd.zipWithIndex 

zipWithIndexで追加されたインデックスは、入力ファイルの行番号(最初の行はもちろん0)に対応しますか?それとも、この場合に注文が壊れてしまうのでしょうか?

+0

これはうまくいくはずです: "たとえば、ファイル(sc.textFile)を読むと、RDDの行はファイル内の行になります。" [この回答](http://stackoverflow.com/a/29301258/2661491) –

答えて

6

zipWithIndexは地図のみの変換です(シャッフルしないので)正しい順序になります。ここで安全に使用できます。

-2

SparkContext.textFileは、ファイルごとに複数のパーティションを作成できます。これらのパーティションの順序が正しい場合は、正しい結果が得られるはずです。詳細は、this answerを参照してください。

+2

この回答は正しくありません。 zipWithIndexは、パーティショニングに関係なく、OPが望むものを正確に実行します。 – Tim

+0

パーティションの順序が正しい限り、私は同意します。 –

+1

彼らはどのように順不同ですか?順序付けられたパーティションは、 'sc.textFile'が使用するHadoopRDDクラスの保証です。 – Tim

関連する問題