hive的不等值关联
hive中不支持不等值关联,诸如:
select a.app_name, b.app_name from a left outer join b on (b.app_name like a.app_name)
select a.app_name, b.app_name from a left outer join b on (b.num < a.num)
其实,不支持指的是在on后面的连接条件中不支持费等值连接,
在业务场景以及数据量允许的条件下,可做如下变通:
select a.app_name, b.app_name from a left outer join b where instr(b.app_name,a.app_name) > 0
select a.app_name, b.app_name from a left outer join b where b.num < a.num
即:先让两个表做笛卡尔积,再从结果中过滤所需要的。
hive中很多地方还是需要变通的。
别忘了验证记录数和结果集的正确性。
相关推荐
archive 2020-07-30
成长之路 2020-07-28
eternityzzy 2020-07-19
taisenki 2020-07-05
tugangkai 2020-07-05
SignalDu 2020-07-05
zlsdmx 2020-07-05
tomson 2020-07-05
tugangkai 2020-07-04
tomson 2020-07-05
Zhangdragonfly 2020-06-28
genshengxiao 2020-06-26
成长之路 2020-06-26
tomson 2020-06-26
蜗牛之窝 2020-06-26
成长之路 2020-06-25