
image.png
在spark 上跑hive sql 腳本,在spark 2.x以上跑沒(méi)問(wèn)題 ,hive上沒(méi)問(wèn)題,spark1.6上跑最后會(huì)報(bào)如圖以上問(wèn)題 ,墻內(nèi)比較難找到對(duì)應(yīng)解決辦法 ,可以在腳本里配置一下配置,spark.sql.adaptive.enabled=true,默認(rèn)值是false。設(shè)置為true的話,就是開啟了Spark SQL自適應(yīng)查詢引擎,就是在運(yùn)行時(shí),通過(guò)一些統(tǒng)計(jì)指標(biāo)來(lái)動(dòng)態(tài)優(yōu)化Spark sql的執(zhí)行計(jì)劃。
產(chǎn)生原因目前沒(méi)有找到合適的解釋,產(chǎn)生問(wèn)題的地方很簡(jiǎn)單,就是兩個(gè)表在left join 預(yù)估是因?yàn)閿?shù)據(jù)傾斜導(dǎo)致 ,a left join b的時(shí)候 ,b表數(shù)據(jù)較小,大量數(shù)據(jù)關(guān)聯(lián)不上,導(dǎo)致數(shù)據(jù)傾斜