2016-10-01 43 views
1

我有一種數據分區方式,我只是想在另一個分區。 因此,它基本上會是這樣的:dataFrameWriter分區是否洗刷數據?

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

我不知道這是否會引發洗牌或全部數據都將被重新分區本地,因爲在這個背景的分區意味着只是一個目錄在HDFS和數據相同的分區不必在同一個節點上寫入HDFS中的相同目錄。

回答

5

parititionBybucketBy都沒有洗牌數據。在有些情況下,雖然,第一個重新分區數據的時候可以是一個好主意:

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

否則,輸出文件的數量由分區數的限制*分區列的基數。

+0

我應該重新分配什麼來避免這種情況? –