5
它看起來像這樣就會因錯誤如何將具有bucketBy/sortkey值的parquet文件保存到s3中?
df
.write()
.option("mode", "DROPMALFORMED")
.option("compression", "snappy")
.mode("overwrite")
.bucketBy(32,"column").sortBy("column")
.parquet("s3://....");
有了錯誤
Exception in thread "main" org.apache.spark.sql.AnalysisException: 'save' does not support bucketing right now; at org.apache.spark.sql.DataFrameWriter.assertNotBucketed(DataFrameWriter.scala:314)
我看到saveAsTable("myfile")
仍然支持,但是它只能在本地寫道。在作業完成後,我會如何將saveAsTable(...)
輸出放到s3上?
你有沒有考慮使用'再分配(32)'''partitionBy(「column」)'? –
Parition by通過爲每個列創建一個新文件,bucket通過創建一個散列鍵並均勻分佈在N個桶中。他們做不同的事情。在我的情況下,我想要存儲的列是用戶ID,這是唯一的。我真正想要的是bucketby提供的sortkey/index。 – ForeverConfused