hive left semi join
来源:互联网 发布:《淘宝规则》 编辑:程序博客网 时间:2024/04/27 21:28
SELECT nameFROM table_1 a INNER JOIN table_2 b ON a.name=b.nameSELECT nameFROM table_1 a LEFT SEMI JOIN table_2 b ON (a.name=b.name)
difference between inner join and left semi join:
hive 中inner join 和left semi join 的不同:
如上述例子,使用inner join 时,会返回在左右两边都同时存在的记录,尤其,当右表中存在多行与左表相匹配时,则会返回多行;
类似于,在map中,t1,t2都按照关联字段name为key输出,然后在reduce再依输出匹配上的左右表数据:
map{
if(t1){
out(name,value)
}
if(t2){
out(name,value)
}
reduce{
for(t1.rows){
for(t2.rows){
out(t1.row+t2.row)
}
}
}
使用left semi join时,则仅会返回左表中的记录,并且是存在右表匹配的行;
类似:先将右表的name列缓存成list,然后判断每次左表的输入的一行的name值是否存在于这个list中,
map{
if(t1){
if(t2.name.contains(t1.name))
{out(t1)}
}
因而,在left semi join,只能select 左表中的列,并且当右表中存在多个行与左表匹配时,左表只会输出一次;
0 0
- hive left semi join
- hive left semi join
- hive中的LEFT SEMI JOIN
- Hive.LEFT SEMI JOIN子句
- hive中的LEFT SEMI JOIN
- hive left semi join讲解
- 【转】hive中的LEFT SEMI JOIN
- Hive中的LEFT SEMI JOIN<转>
- Hive的left join、left outer join和left semi join三者的区别
- Hive的left join、left outer join和left semi join三者的区别
- shark,hive源码---left semi join的处理
- hive 包含操作(left semi join)(left outer join = in)迪卡尔积
- HIVE 中内连接(JOIN ON)与LEFT SEMI JOIN查询结果不一致的分析
- HIVE 中内连接(JOIN ON)与LEFT SEMI JOIN查询结果不一致的分析
- HIVE 中内连接(JOIN ON) 与 LEFT SEMI JOIN 分析
- HIVE 中内连接(JOIN ON) 与 LEFT SEMI JOIN 分析
- Hive 中的 LEFT SEMI JOIN 与 JOIN ON 的前世今生
- Skew Join与Left Semi Join相关
- UIKit
- HyperNet: Towards Accurate Region Proposal Generation and Joint Object Detection
- 很好的人脸识别特征脸分析
- ArcGIS教程:最小值和最大值条形图
- Android——canvas学习
- hive left semi join
- 实例讲解 封装继承多态(三)
- 上海驾校科目二考试的几个至关重要技巧
- JAVA多线程之线程同步
- kaggle 入门 digit recognizer Python xgboost
- readOnly和disabled的区别
- 12个JavaScript技巧
- Android系统架构学习与思考
- (深夜课堂)Javascript 面向对象的程序设计