spark合並小文件有兩種辦法,分別針對spark core和spark sql
#######一、設置spark配置文件的屬性(spark sql)
spark.sql.shuffle.partitions
example:
SparkSession.builder().enableHiveSupport().config(conf).
config("spark.sql.shuffle.partitions",5).
getOrCreate()
這里表示shuffle時自動分區為5個分區
#######二、對DataFrame或者RDD之后調用如下方法重新分區(spark core)
調用coalesce(num)
或者 repartition(num)
方法,其中num為分區數量,可簡單的理解成文件數量,可以通過修改分區數來控制文件數,通過控制文件數量可以達到控制小文件的數量來解決此問題,對於DataFrame和RDD,這里推薦使用coalesce(num)
來解決小文件問題