0
私たちは50MM行を処理するSpark環境を持っています。これらの行にはキー列が含まれています。一意のキー数は2000に近いです。これらの2000のキーをすべて並列に処理したいと思います。したがって、次のようなSpark SQLを使用しています。スパークパーティション - DISTRIBUTE BYオプションを使用
hiveContext.sql("select * from BigTbl DISTRIBUTE by KEY")
次に、すべてのパーティションでうまく動作するmapPartitionsを並列に使用します。しかし、問題は、デフォルトでは200個のパーティションしか作成しないということです。次のようなコマンドを使用して、私はユニークなキーの数が何であるかを知ることはできません実際の製造運転中にパーティションが
hiveContext.sql("set spark.sql.shuffle.partitions=500");
を増加させることができています。私はこれを自動管理したい。これを行う方法はありますか?
おかげ
バラ
は本当にありがとうございましたを使用します。私は別の機能のテストを終了しています。私がそれを済ませたら、あなたが提案して更新しているアプローチを確かに試みるでしょう。助けをもう一度ありがとう –
ありがとう@Snchitグローバー。それは非常にうまくいった。ありがとうございました。しかし、私はパーティションの数が多いために別の問題にぶつかります。私たちはSpark 1.6.1で作業しており、私たちはバグSPARK-12837を打っていると思います。 2.0にアップグレードできるかどうか試してみる。今のところこの問題は解決され、もう一度感謝しています。 –