私はSpark 1.6.1を使用していますが、Sparkの世界ではまだまだ新しいです。 ファイルをORC形式に保存して再生しています。パフォーマンスの向上Spark ORC
比較的大きなテキストファイル(8 GB)をORCに解析しようとしています。通常、ファイルはかなり広く、つまり200+の列です。
列の型は、Int、String、Dateの基本型です。 すべての行を解析し、次にpersist()を実行してファイルに保存します。ここで
は、基本的なコードです:
val schema = StructType(
myTableColumns.map(
c => StructField(
//Field descriptions ~200 fields
)))
val rowRDD = rddProcessedLines.map(line => {
Row.fromSeq(line)
})
val fileSchemaRDD = hiveContext.createDataFrame(rowRDD, schema)
fileSchemaRDD.registerTempTable("output_table_name")
fileSchemaRDD.write.orc("output_folder")
問題は、パフォーマンスが非常に悪いということです。同じテキストファイルからリレーショナルデータベースへのインポートが悪い
私はスナッピーとLZFのコンプレッサーを切り替えようとしましたが、ここではあまり効果がありませんでした。 私はノードとコアの数のためのメモリサイズでも、それほど良くはありませんでした。 その後、圧縮のためにバッファサイズなどを変更し始めました。 多数の列に対してパフォーマンスが大幅に低下しています。 誰かがどこを見るか教えてもらえますか? ORCファイル保存の最適化に関する有益なトピックを誰かが指摘できますか?
sparkでのパフォーマンスはどこですか?私は1を実行する必要があります。解凍します。 2.何らかの理由で64チャンクで区切ります(内部構造が維持されることを念頭に置いてください)。3.すべてをHDFSにコピーします。私は、データベース "COPY"またはインポートが遅くなるのではないかと疑います。 – user677571
それは魔法の応用ではなく、火花です。クラスタのフルキャパシティを本当に使用したい場合は、ファイルの分割を気にする必要があります。そうしないと、残りの部分を使わずに単一のエグゼキュータをオーバーロードすることになります。 – Nakul