我在 Spark 3.1 上有一個作業流,并最終將按年、月、日、小時磁區的資料幀寫入 S3。我希望 S3 中每個“檔案夾”中的檔案都被覆寫,但它們總是被附加。關于可能是什么問題的任何想法?
spark.conf.set("spark.sql.sources.partitionOverwriteMode", "dynamic")
df
.write
.mode(SaveMode.Overwrite)
.partitionBy("year", "month", "day", "hour")
.json(outputPath)
uj5u.com熱心網友回復:
這似乎是 Spark 3.1 上的一個錯誤。降級到 Spark 3.0.1 會有所幫助。
uj5u.com熱心網友回復:
我建議這個版本:
df
.write
.mode('overwrite')
.partitionBy("year", "month", "day", "hour")
.json(outputPath)
或者這個:
df
.write
.mode(SaveMode.Overwrite)
.partitionBy("year", "month", "day", "hour")
.json(outputPath)
對于舊版本的 Spark,您可以使用以下命令用 RDD 內容覆寫輸出目錄:
sparkConf.set("spark.hadoop.validateOutputSpecs", "false")
val sparkContext = SparkContext(sparkConf)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/414297.html
標籤:
