spark 實現HDFS小文件合並


一、首先使用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM