1、設定配置
spark.
sql(
"set hive.exec.dynamic.partition=true"
) spark.
sql(
"set hive.exec.dynamic.partition.mode=nonstrict"
) spark.
sql(
"set spark.sql.shuffle.partitions=1"
)//優化,防止生成很多的小檔案
2、進行insert into 將tmp裡的很多小檔案進行合併,合併到test中
def mergetest
(spark: sparksession, iscluster: int)
: unit =
由於資料量本身不是特別大,所以直接採用了group by(在spark中屬於寬依賴)的方式。 這裡必須要加入group by。 否則算是窄依賴, 設定了合併引數也是無效的。 Spark Sql 小檔案問題
參考 使用spark sql apis 處理資料容易產生生成大量小檔案,小檔案問題也是在分布式計算中常見的問題。一般有三種方法來處理這類問題 spark.sql.shuffle.partitions 引數通過在處理joins 或 aggregations 等shuffle操作來控制輸出的分割槽數。可...
sparksql壓縮小檔案
set spark.sql.shuffle.partitions 2 set spark.sql.adaptive.enabled true set spark.sql.adaptive.shuffle.targetpostshuffleinputsize 268435456 insert over...
hive小檔案合併機制 Hive小檔案合併遷移
1 需求 2 小檔案合併 我們通過sparksql進行小檔案合併,首先開啟spark shell申請足夠多的資源 spark shell master yarn driver memory 20g driver cores 4 executor cores 6 num executors 18 ex...