Advertisement

Spark join的分门别类

阅读量:

目前SparkSQL实现了交错哈希联结法、广播哈希联结法以及排序合并联结法。

Hash Join

采用hash join算法,整个过程会经历三步:

识别BuildTable与ProbeTable的作用:通过键值对进行键值存储的方式构建HashTable结构(BuildTable),而ProbeTable则基于键值对进行探测操作。当探测到目标键值对存在时,则可直接关联起来。在实际应用中,默认情况下较小规模的表格主要负责BuildTable功能实现(即构建哈希表),而较大的数据量则用于ProbeTable功能实现(即用于探测阶段)。

创建哈希表:按顺序读取Build表中的每一行数据,并按照键字段进行哈希处理后将其分配至相应的桶并生成一条记录信息。将这些数据暂时存储在内存中;当内存不足以容纳全部时,则将部分或全部数据转存至外部存储设备。

探测过程:依次遍历Probe Table中的数据记录,并运用同样的哈希算法对Hash Table中的相关记录进行映射操作。完成映射后需验证连接条件是否满足;若符合条件,则执行连接操作。

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~