Hive中使用MAP JOIN
发布日期:2021-08-30 16:00:39
浏览次数:13
分类:技术文章
本文共 852 字,大约阅读时间需要 2 分钟。
1 概述
若所有表中只有一张小表,那可在最大的表通过Mapper的时候将小表完全放到内存中,Hive可以在map端执行连接过程,称为map-side join,这是因为Hive可以和内存的小表逐一匹配,从而省略掉常规连接所需的reduce过程。即使对于很小的数据集,这个优化也明显地要快于常规的连接操作。其不仅减少了reduce过程,而且有时还可以同时减少Map过程的执行步骤。 使用MAPJOIN可解决以下实际问题: A 有一个极小的表<1000行(a是小表) B 需要做不等值join操作(a.x<b.y或者a.x like b.y等)。普通join语法不支持不等于操作,Hive语法解析会直接抛出错误。select /*+ MAPJOIN(a)*/a.name, b.stu_idfrom student_table_small ajoin student_table_big bwhere b.age>=a.age
2 相关参数
2.1 小表自动选择Mapjoin set hive.auto.convert.join=true; 默认值:false。该参数为true时,Hive自动对左边的表统计量,若是小表就加入内存,即对小表使用Map join2.2 小表阀值 set hive.mapjoin.smalltable.filesize=25000000; 默认值:25M2.3 map join做group by操作时,可使用多大的内存来存储数据。若数据太大则不会保存在内存里 set hive.mapjoin.followby.gby.localtask.max.memory.usage; 默认值:0.552.4 本地任务可以使用内存的百分比 set hive.mapjoin.localtask.max.memory.usage; 默认值:0.90 参考地址:http://blog.csdn.net/kwu_ganymede/article/details/51365002转载地址:https://blog.csdn.net/weixin_34038652/article/details/90585814 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年03月31日 19时10分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Python3《机器学习实战》学习笔记(三):决策树实战篇之为自己配个隐形眼镜
2019-04-27
学生成绩信息管理c++
2019-04-27
“携号转网”11日在全国开启试运行,申请流程看过来
2019-04-27
猴子吃香蕉问题
2019-04-27
1=5,2=15,3=215,4=2145那么5等于多少
2019-04-27
网站开发的基本流程-解析
2019-04-27
Docker入门教程
2019-04-27
怎样删除office2019拥有多个都需要激活的授权信息
2019-04-27
通过php上传和下载rar/zip压缩文件
2019-04-27
html+css+js实现的图片轮播图下方配文字可变图片可点击
2019-04-27
网页尾部footer编写--小技巧
2019-04-27
基于ECS搭建云上博客-具体步骤如下
2019-04-27
html中给图片添加遮罩阴影效果
2019-04-27
html帧动画
2019-04-27
html三级导航栏编写
2019-04-27
html-logo名牌效果
2019-04-27
html电子相册
2019-04-27
html圣杯布局实现思路-三栏布局
2019-04-27
html双飞翼布局-三栏布局
2019-04-27
html等高布局
2019-04-27