使用Adaptive Execution 动态设置Shuffle partition 可控制spark sql小文件问题
- .config("spark.sql.adaptive.enabled", "true") // 开启sparksql Adaptive Execution 自动设置 Shuffle Reducer
- .config("spark.sql.adaptive.shuffle.targetPostShuffleInputSize", "67108864b") //设置每个 Reducer 读取的目标数据量
根据Adaptive Execution来启动CBO
- .config("spark.sql.adaptive.join.enabled", "true") // 是否根据 Adaptive Execution 做 CBO 优化
- .config("spark.sql.autoBroadcastJoinThreshold", "20971520") //broadcastJoin 大小