2016-12-14 19 views
1

我正在使用spark作爲AVRO文件寫入s3。它被保存爲單個文件,但我想在寫入時將其分塊爲多個文件。我該如何通過spark將塊寫入S3?

我用:

df.coalesce(6).write.json(path) 

但仍然是保存爲單個文件。

任何幫助將不勝感激!

謝謝。

+0

你可以看看這個包可能是它會幫助ühttps://spark-packages.org/package/knoldus/spark-s3 –

回答

0

您的RDD在調用coalesce(6)之前可能只有一個分區。

COALESCE(numPartitions): coalesce()如果要求增加他們不只是減少分區的數量時工作,但什麼都不做減少分區的數量在RDD到numPartitions

你可以嘗試使用repartition(6)代替,這也將工作如果分區數量的增加:

重新分區(numPartitions):隨機對RDD中的數據進行重新組合,以創建更多或更少的分區並在其間進行平衡。這總是通過網絡混洗所有數據。

+0

它的工作,感謝 – GSR

+0

我只是想了解這個升技詳細,當我建立一個jdbc連接時,它將建立一個單一的連接點並在單個執行器上工作。如果我在數據框上使用重新分區並執行轉換。這些轉換是並行還是單個執行器? – GSR

+0

這取決於有多少執行者分配給作業。如果你只分配一個,它將依次連續六個部分。如果你分配了六個執行者,他們將接受每一份工作,並行運行。 –

相關問題