2016-10-01 4 views
1

私はデータを一方向に分割していますが、別のパーティションに分割したいだけです。 だから、基本的にこのようなものになるつもり:私はこの文脈でパーティションがからHDFSとデータでディレクトリだけを意味するので、これはシャッフルをトリガするか、すべてのデータがローカルに再パーティションになりますんだろdataFrameWriterパーティションはデータをシャッフルしますか?

sqlContext.read().parquet("...").write().partitionBy("...").parquet("...") 

同じパーティションがHDFSの同じディレクトリに書き込まれるために同じノード上にある必要はありません。

答えて

5

parititionByでもbucketByもデータをシャッフルしません。

df.repartition(...).write.partitionBy(...) 

そうでない場合は、出力ファイルの数は、パーティションの数によって制限されパーティション列のカーディナリティを*:ケースは良いアイデアすることができ最初のデータを再分割する際は、しかしがあります。

+0

これを避けるために何を再分割すべきですか? –

関連する問題