HIVE中MAPJOIN可以使用的场景分析
来源:互联网 发布:电影票订购软件 编辑:程序博客网 时间:2024/05/21 06:42
最近开发中遇到几种应用,刚好使用MAPJOIN来解决实际的问题。
应用共同点如下:
1: 有一个极小的表<1000行
2: 需要做不等值join操作(a.x < b.y 或者 a.x like b.y等)
这种操作如果直接使用join的话语法不支持不等于操作,hive语法解析会直接抛出错误
如果把不等于写到where里会造成笛卡尔积,数据异常增大,速度会很慢。甚至会任务无法跑成功~
根据mapjoin的计算原理,MAPJION会把小表全部读入内存中,在map阶段直接拿另外一个表的数据和内存中表数据做匹配。这种情况下即使笛卡尔积也不会对任务运行速度造成太大的效率影响。
而且hive的where条件本身就是在map阶段进行的操作,所以在where里写入不等值比对的话,也不会造成额外负担。
如此看来,使用MAPJOIN开发的程序仅仅使用map一个过程就可以完成不等值join操作,效率还会有很大的提升。
问题解决~~
示例代码如下:
1: select /*+ MAPJOIN(a) */
2: a.start_level, b.*
3: from dim_level a
4: join (select * from test) b
5: where b.xx>=a.start_level and b.xx<end_level;
- HIVE中MAPJOIN可以使用的场景分析
- HIVE中MAPJOIN可以使用的场景分析
- HIVE中MAPJOIN可以使用的场景分析
- HIVE中MAPJOIN可以使用的场景分析<转>
- HIVE中MAPJOIN可以使用的场景分析
- HIVE中MAPJOIN可以使用的场景分析
- HIVE中MAPJOIN可以使用的场景分析
- Hive中Mapjoin的使用
- #Hive#Mapjoin的使用
- hive mapjoin使用
- hive mapjoin使用
- hive mapjoin使用
- hive mapjoin使用
- hive mapjoin使用
- hive mapjoin使用
- hive mapjoin使用
- hive使用mapjoin
- hive mapjoin使用
- 众手游公司崛起:腾讯“主营收入”面临危机!
- ubuntu 下火狐 使用迅雷看看
- 字符串匹配 -- KMP算法
- poj1035_Spell checker
- spring batch批处理分区读取数据库的例子
- HIVE中MAPJOIN可以使用的场景分析
- USB充电插拔和usb Debugging connect提示
- SAMARTFORM学习问题1
- object 入门
- Android使用Application总结
- [openstack]资源统计实现
- java 发送邮件
- 复制到剪切板 兼容(IE/FF/Chrome/..)
- 1083 Moving Tables DP