[发明专利]一种SparkBroadcasthashjoin操作的改进方法在审
| 申请号: | 201710339062.9 | 申请日: | 2017-05-15 |
| 公开(公告)号: | CN107169097A | 公开(公告)日: | 2017-09-15 |
| 发明(设计)人: | 曹芳 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 罗满 |
| 地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 sparkbroadcasthashjoin 操作 改进 方法 | ||
技术领域
本发明涉及Spark大数据处理技术领域,特别是涉及一种Spark Broadcasthashjoin操作的改进方法。
背景技术
目前,Spark是近年来发展较快的分布式并行大数据处理框架,Spark SQL提供了对结构化数据的处理。Broadcasthashjoin是Spark SQL中的一项重要操作,用于处理多表连接。Broadcasthashjoin是对join操作的优化处理。
在Spark SQL中Broadcasthashjoin首先使用broadcast把小表分发到每台执行节点上,然后利用小表中的key数据计算hash值建立哈希表,最后计算大表对应的hash值,在hash表中进行查找最终完成表的连接。Broadcasthashjoin操作过程中需要利用小表来创建哈希表,创建哈希表的过程中不可避免的要解决相同key的冲突问题,Broadcasthashjoin操作中用链地址法来解决冲突。然而这种方法再处理冲突时,往往不会考虑小表中数据被大表查找的先验概率大小。例如,小表中key值a位于key值b之前,二者对应的哈希值相同,在创建哈希表时利用链地址法处理冲突会将b链接在a之后,而实际先验已知在大表中进行查找连接操作时,查找b的频率远远高于a,那么此时查找效率将会非常低下,尤其是在处理大批相同哈希值的情况下。
在Spark集群中直接join将会对所有数据进行shuffle,需要大量的io操作,相同的key会在同一个partition中进行处理,任务的并发度也受到了限制。Broadcasthashjoin通过使用broadcast把小表分发到每台执行节点上,从而使得关联操作都在本地完成,基本就取消了shuffle的过程,运行效率大幅度提高。然而该操作同时也涉及到哈希表的创建和查找过程,以及哈希表创建过程中的冲突解决问题。Broadcasthashjoin利用链地址法来解决冲突。然而这种方法处理冲突时只是在每次遇到冲突时将对应数据依次挂接在相同hash值对应的链表里,并未考虑到小表中数据被大表查找的先验概率大小,也即大表中与小表中相同字段的概率大小,从而造成了后续大表join操作时查找连接效率较低。
发明内容
本发明的目的是提供一种Spark Broadcasthashjoin操作的改进方法,以实现提高查找效率,进而提高join的连接效率。
为解决上述技术问题,本发明提供一种Spark Broadcasthashjoin操作的改进方法,该方法包括:
获取小表,并获取小表中key值被大表查找的先验概率;
依据先验概率对小表中的key从大到小进行排序,得到一个新的有序表;
利用所述新的有序表构建哈希表,将哈希表广播到各个节点;
在各个节点获取大表内容,将大表内容与哈希表中的匹配项进行连接。
优选的,小表中的每个key均对应一个先验概率。
优选的,所述利用所述新的有序表构建哈希表,包括:
逐行计算小表中每行key的哈希值,将具有相同哈希值的key对应的关键字都依次放在同一个链表中,构成哈希表。
优选的,所述哈希值为关键字的哈希地址。
优选的,所述将具有相同哈希值的key对应的关键字都依次放在同一个链表中,构成哈希表之后,还包括:采用数组存放各个链表的头指针。
优选的,链表的数目和哈希地址的数目相同。
优选的,所述将大表内容与哈希表中的匹配项进行连接,包括:
计算大表中各行key的哈希值,在哈希表中查找哈希值相同的匹配项,将大表内容与匹配项进行连接。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710339062.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:音频信息处理的方法及装置
- 下一篇:数据搬运方法、数据搬运装置及电子设备





