MapReduce | sql | 备注 |
---|---|---|
input | from | |
map | where[select 字段 ] \join | |
shuffle | group by\order by | |
reduce | having[select 聚合函数 ]\limit\join |
HIVE底层MR. select 可以发生再Map端也可以发生再reduce端
JOIN 可以发生在map端 也可以发生在Reduce端
over() 窗口函数是在最后面
hive sql 执行顺序
image.pngc
这条语句有两个mr 程序
left join 时 where 和 on的区别
image.pngA 十行
-
在使用外连接的时候,hive 默认开启谓词下推,会先执行where中的过滤条件,on后边的过滤条件不一定生效,如果不写where 在读取的时候,默认不过滤 全读取
-
左连接 left join ,右连接 right join
左边的过滤条件放在on后边不生效,结果中还会有,但不参与join
列: a left join b on a.id = b.id and a.id ! = 1 结果集中还有 id = 1
- 只有过滤条件放在where 后边才生效
实际开发中先进行where过滤,然后再进行join 关联
网友评论