一、首先使用sparksql讀取需要合並的數據。當然有兩種情況,
一種是讀取全部數據,即需要合並所有小文件。
第二種是合並部分數據,比如只查詢某一天的數據,只合並某一個天分區下的小文件。
val df: DataFrame = spark.sql("sql")
二、將讀取到的數據寫入臨時文件中。此處需注意使用coalesce方法對文件進行合並。
df.coalesce(1).write.mode(SaveMode.Overwrite).parquet(temp_path)
三、將臨時文件寫入待合並文件的目錄,並采用Overwrite的方式。
spark.read.parquet(tmp_path).write.mode(SaveMode.Overwrite).save(origin_table_path)
參考以下文章,感謝分享:https://www.cnblogs.com/zfwwdz/p/13154995.html