首页|Spark查询引擎中Join操作的优化

Spark查询引擎中Join操作的优化

OPTIMIZATION OF JOIN OPERATION IN SPARK QUERY ENGINE

扫码查看
Spark是基于Map/Reduce计算模型进行大规模数据处理的分布式系统,每个任务都会被分为很多Map处理和Reduce处理在各个节点上并行执行.Shuffle操作是用于连接Map处理和Reduce处理的桥梁.在对两个大表进行Join操作的过程中,如果两表Join列不完全匹配,Spark中现有的Join实现算法会对大量数据进行shuffle操作,严重影响执行效率.提出一种基于Semi Join思想的Join实现算法——Semi Sort Merge Join,通过对左表Join列数据所构建的HashMap对右表数据进行过滤,可以有效减少Shuffle操作过程中所需传输的数据量.算法分析和实验结果表明,对于Join列数据不完全匹配的大表间Join操作,该算法能有效减少Shuffle操作的开销,右表与左表匹配数据量越少,算法优化的效果越明显.

赵丽梅、黄小菊、宫学庆

展开 >

华东师范大学软件工程学院 上海 200062

Spark Join Shuffle Semi Join

2022

计算机应用与软件
上海市计算技术研究所 上海计算机软件技术开发中心

计算机应用与软件

CSTPCD北大核心
影响因子:0.615
ISSN:1000-386X
年,卷(期):2022.39(8)
  • 1
  • 2