私がしたら、以下のようなものです。sc.textFileの後のzipWithIndexは、正しい行番号を与えますか?
val rdd = sc.textFile("someFile.txt")
val rddWithLines = rdd.zipWithIndex
zipWithIndexで追加されたインデックスは、入力ファイルの行番号(最初の行はもちろん0)に対応しますか?それとも、この場合に注文が壊れてしまうのでしょうか?
私がしたら、以下のようなものです。sc.textFileの後のzipWithIndexは、正しい行番号を与えますか?
val rdd = sc.textFile("someFile.txt")
val rddWithLines = rdd.zipWithIndex
zipWithIndexで追加されたインデックスは、入力ファイルの行番号(最初の行はもちろん0)に対応しますか?それとも、この場合に注文が壊れてしまうのでしょうか?
zipWithIndex
は地図のみの変換です(シャッフルしないので)正しい順序になります。ここで安全に使用できます。
SparkContext.textFileは、ファイルごとに複数のパーティションを作成できます。これらのパーティションの順序が正しい場合は、正しい結果が得られるはずです。詳細は、this answerを参照してください。
これはうまくいくはずです: "たとえば、ファイル(sc.textFile)を読むと、RDDの行はファイル内の行になります。" [この回答](http://stackoverflow.com/a/29301258/2661491) –