我正在尝试了解如何将查询计划拆分为Spark中的作业,以及Spark如何决定在工作和阶段中拆分工作流程。
我的查询是一个大表(22Gb)和一个小表(300Mb)之间的简单连接:
split
我用ShuffledHashJoin和BroadcastHashJoin执行它。
对于ShuffledHashJoin,我只得到一份工作:
和4阶段:
对于BroadcastHashJoin,我得到3份工作:
4阶段:
这个Job的分区是由我在使用BroadcastHashJoin时所需的驱动程序上的“collect”引起的?