一襟铭、如何選取到 broadcast join
Join 具有 hint 的情況會(huì)調(diào)用 createBroadcastHashJoin(onlyLookingAtHint = true)
替废,若 Join 沒有 hint 的情況調(diào)用 createBroadcastHashJoin(onlyLookingAtHint = false)
二便脊、BroadcastHashJoinExec
執(zhí)行兩個(gè)子 relation 的 inner hash join。 構(gòu)造此運(yùn)算符的輸出 RDD 時(shí),將異步啟動(dòng)一個(gè) Spark 作業(yè)來計(jì)算 broadcast relation 的值。 然后,此數(shù)據(jù)將放置在 Spark 廣播變量中瞬哼。 streamed relation 不需要 shuffle。
2.1租副、執(zhí)行原理
BroadcastHashJoinExec#doExecute()
2.2坐慰、Broadcast Join 物理執(zhí)行計(jì)劃及最終執(zhí)行計(jì)劃
2.3、broadcast 執(zhí)行原理
三、ShuffledHashJoinExec
3.1结胀、如何選取到 shuffle hash join
3.2赞咙、Shuffle Hash Join 物理執(zhí)行計(jì)劃及最終執(zhí)行計(jì)劃
3.3、執(zhí)行原理
ShuffleHashJoinExec#doExecute()