System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及大数据处理,尤其是涉及一种基于spark的两表连接方法、装置、电子设备及介质。
技术介绍
1、在大数据处理的背景下,出现了如hadoop、spark等计算框架。spark是一种分布式内存并行计算框架,它以弹性分布式数据集(rdd)为数据结构,并支持迭代计算,在大数据处理中展现出了优秀的性能。在spark环境中,经常会执行数据统计分析、查询等任务,其中等值连接是常用但代价较高的操作之一。特别是在大数据环境下,数据表规模巨大,大表之间的等值关联操作效率更加低下。当数据量大时,shuffle操作会带来大量的网络通信和磁盘i/o。当数据节点上出现数据倾斜问题时,会导致局部节点作业时间长、计算量大,从而导致整体作业时间长、局部节点出现oom内存溢出和计算资源浪费等问题。由于大数据的特性,数据价值密度低,进行连接操作的两个表中通常存在大量不需要join的数据元组,从而影响等值连接操作的计算效率。
技术实现思路
1、有鉴于此,本专利技术的目的在于提供一种基于spark的两表连接方法、装置、电子设备及介质,以提高了资源利用率和计算效率。
2、为了实现上述目的,本专利技术实施例采用的技术方案如下:
3、第一方面,本专利技术实施例提供了一种基于spark的两表连接方法,包括:获取第一数据表的连接属性key值和连接属性key值的第一频次,以及第二数据表的连接属性key值和连接属性key值的第二频次,得到第一连接属性集合和第二连接属性集合;基于连接属性key值将第一连
4、在一种实施方式中,基于连接属性key值将第一连接属性集合和第二连接属性集合进行合并和过滤,得到连接属性key值的频次量级分布表,包括:将第一连接属性集合和第二连接属性集合按照连接属性key值进行合并,并统计每个连接属性key值的计次;将连接属性key值的计次等于2的连接属性key值进行过滤,得到合并连接属性集合;根据合并连接属性集合中每个连接属性key值和第一参数阈值对第一连接属性集合和第二连接属性集合进行过滤,得到第一频次量级分布表和第二频次量级分布表;将第一频次量级分布表和第二频次量级分布表进行合并,得到连接属性key值的频次量级分布表。
5、在一种实施方式中,将第一频次量级分布表和第二频次量级分布表进行合并,得到连接属性key值的频次量级分布表之后,上述方法还包括:根据合并连接属性集合中每个连接属性key值对第一数据表和第二数据表进行过滤,得到第一连接key值集合和第二连接key值集合。
6、在一种实施方式中,预先设定的参数阈值至少包括:第一参数阈值、第二参数阈值、第三参数阈值和第四参数阈值;其中,第一参数阈值小于第二参数阈值。
7、在一种实施方式中,基于频次量级分布表中连接属性key值的第一频次、第二频次和预先设定的参数阈值之间的关系确定对应的连接方式,得到多个子集合,包括:
8、如果连接属性key值的第一频次和第二频次均小于第一参数阈值,则分别从第一连接key值集合和第二连接key值集合中获取连接属性key值对应的第一数据集合和第二数据集合,并将第一数据集合和第二数据集合的交集确定为第一子集合;
9、如果频次量级分布表中的连接属性key值的第一频次大于或者等于第一参数阈值且小于第二参数阈值,且第二频次大于或者等于第一参数阈值且小于第二参数阈值,则分别从第一连接key值集合和第二连接key值集合中获取连接属性key值对应的第三数据集合和第四数据集合,并将第三数据集合和第四数据集合的交集确定为第二子集合;
10、如果频次量级分布表中的连接属性key值的第一频次大于或者等于第一参数阈值且小于第二参数阈值,且第二频次大于或者等于第二参数阈值,则分别从第一连接key值集合和第二连接key值集合中获取连接属性key值对应的第五数据集合和第六数据集合,并采用broadcast广播方式将第五数据集合的数据广播至所有节点,以及采用第六数据集合mapjoin方式得到第三子集合;
11、如果频次量级分布表中的连接属性key值的第二频次大于或者等于第一参数阈值且小于第二参数阈值,且第一频次大于或者等于第二参数阈值,则分别从第一连接key值集合和第二连接key值集合中获取连接属性key值对应的第七数据集合和第八数据集合,并采用broadcast广播方式将第八数据集合的数据广播至所有节点,以及采用第七数据集合mapjoin方式得到第四子集合;
12、如果频次量级分布表中的连接属性key值的第一频次大于或者等于第二参数阈值,且第二频次大于或者等于第二参数阈值,则根据第一频次和第二频次的比值与第三参数阈值之间的关系,分别从第一连接key值集合和第二连接key值集合中获取连接属性key值对应的第九数据集合和第十数据集合,并基于第九数据集合和第十数据集合得到第五子集合。
13、在一种实施方式中,根据第一频次和第二频次的比值与第三参数阈值之间的关系,分别从第一连接key值集合和第二连接key值集合中获取连接属性key值对应的第九数据集合和第十数据集合,并基于第九数据集合和第十数据集合得到第五子集合,包括:如果第一频次和第二频次的比值大于或者第三参数阈值,则根据第一频次和第二频次的比值确定前缀参数,并分别从第一连接key值集合和第二连接key值集合中获取连接属性key值对应的第九数据集合和第十数据集合;将第九数据集合中的每个连接属性key值根据前缀参数依次添加前缀,得到第十一数据集合,以及根据前缀参数将第十数据集合中的数据进行扩充,得到第十二数据集合;根据第十一数据集合和第十二数据集合得到第十三数据集合,并去除第十三数据集合中每个连接属性key值的前缀,得到第五子集合。
14、在一种实施方式中,根据第一频次和第二频次的比值与第三参数阈值之间的关系,分别从第一连接key值集合和第二连接key值集合中获取连接属性key值对应的第九数据集合和第十数据集合,并基于第九数据集合和第十数据集合得到第五子集合,包括:如果第一频次和第二频次的比值小于第三参数阈值,则根据第一频次与第四参数阈值的比值确定第一拆分参数,以及根据第二频次与第四参数阈值的比值确定第二拆分参数;分别从第一连接key值集合和第二连接key值集合中获取连接属性key值对应的数据集合,并去除数据集合中的连接属性key值,得到第九数据集合和第十数据集合;根据第一拆分参数将第九数据集合拆分为多个第九数据子集合,以及根据第二拆分参数将第十数据集合拆分为多个第十数据子集合;遍历每个第九数据子集合和第十数据子集合,通过笛卡尔积连接得到多个第十四数据集合,并将连接属性key值还原至第十四数据集合中,得到多个第十五数据集合;将第十五数据集合进行组合得到第五子本文档来自技高网...
【技术保护点】
1.一种基于spark的两表连接方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,基于所述连接属性key值将所述第一连接属性集合和所述第二连接属性集合进行合并和过滤,得到所述连接属性key值的频次量级分布表,包括:
3.根据权利要求2所述的方法,其特征在于,将所述第一频次量级分布表和所述第二频次量级分布表进行合并,得到所述连接属性key值的频次量级分布表之后,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述预先设定的参数阈值至少包括:第一参数阈值、第二参数阈值、第三参数阈值和第四参数阈值;其中,所述第一参数阈值小于所述第二参数阈值。
5.根据权利要求4所述的方法,其特征在于,基于所述频次量级分布表中所述连接属性key值的第一频次、第二频次和预先设定的参数阈值之间的关系确定对应的连接方式,得到多个子集合,包括:
6.根据权利要求5所述的方法,其特征在于,根据所述第一频次和所述第二频次的比值与所述第三参数阈值之间的关系,分别从所述第一连接key值集合和所述第二连接key值集合中获取所述连接属
7.根据权利要求5所述的方法,其特征在于,根据所述第一频次和所述第二频次的比值与所述第三参数阈值之间的关系,分别从所述第一连接key值集合和所述第二连接key值集合中获取所述连接属性key值对应的第九数据集合和第十数据集合,并基于所述第九数据集合和所述第十数据集合得到第五子集合,包括:
8.一种基于spark的两表连接装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1至7任一项所述的方法的步骤。
...【技术特征摘要】
1.一种基于spark的两表连接方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,基于所述连接属性key值将所述第一连接属性集合和所述第二连接属性集合进行合并和过滤,得到所述连接属性key值的频次量级分布表,包括:
3.根据权利要求2所述的方法,其特征在于,将所述第一频次量级分布表和所述第二频次量级分布表进行合并,得到所述连接属性key值的频次量级分布表之后,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述预先设定的参数阈值至少包括:第一参数阈值、第二参数阈值、第三参数阈值和第四参数阈值;其中,所述第一参数阈值小于所述第二参数阈值。
5.根据权利要求4所述的方法,其特征在于,基于所述频次量级分布表中所述连接属性key值的第一频次、第二频次和预先设定的参数阈值之间的关系确定对应的连接方式,得到多个子集合,包括:
6.根据权利要求5所述的方法,其特征在于,根据所述第一频次和所述第二频次的比值与所述第三参数阈值之间的关系...
【专利技术属性】
技术研发人员:廖新考,何盼,
申请(专利权)人:上海勃池信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。