2017-01-28 4 views
0

タスク:ソートしたファイルを保存して繰り返し実行する

hdfs上にかなり大きな入力ファイル(それぞれ50GBと仮定します)があります。私はそれらを並べ替えるか、どこかに(ドライバプログラム/ hdfs /何か他のものを)保存し、特定の条件が満たされるまでそれらを繰り返します。

質問:

どうすれば最も効果的に実装できますか?

ソートファイルはどこに保存すればよいですか? hdfsの中でどうやってそれらをスパークすることができれば、それらはブロック単位でロードされますか?

答えて

0

あなたのファイルはHDFSにありますので、そこから読んで下のコードを使ってソートしてください。どのような並べ替えの種類がわかりませんが、このコードはコード内の値に基づいてデータ全体を並べ替えます。

val data = sc.textFile( "hdfs://user/AppMetaDataPayload.csv")。

//ソート後にメモリに保存し、そこから処理を開始する場合に使用します。それ以上の処理のためにメモリに保存すると、より速く実行されます。

val d1 = data.flatMap(_。ソート済み) d1.cache();

//あなたはHDFSパスでファイル data.flatMap(_ソート。).saveAsTextFile( "HDFS://user/result6.csv")を保存したい場合は、これを使用し

・ホープこれはあなたを助けるでしょう。

+0

私はhdfsからファイルを読むことにもっと興味があります。どのようにhdfsファイルの一部だけを読むことができますか? 50GBのファイルから1MBがクラスタ全体に分割されているとしましょう。 – Maksym

関連する問題