我需要在另一个蜂房查询中通过直线将蜂巢查询的输出用作变量。因此,像将变量设置为通过直线动态查询
select * from 123 where some_variable='select abc from xyz';
但是蜂房不支持在where子句,所以我反而会做它通过一个shell命令的子查询。这是很容易的使用标准蜂巢CLI,我只想做这样的事情:
my_shell_var=$(hive -S -e "select abc from xyz;")
然后我会运行:
hive -e "select * from 123 where some_variable=$my_shell_var;"
然而直线输出包括边框所以my_shell_var被包围作为这样
+------+ some output +------+
所以我不能将它插回到下一个查询中,因为额外的字符会改变我的字符串。有没有一种方法可以从直线输出中删除边界,或者是否有另一种方法来完成我想要完成的任务?
Hive不支持在子句 – user3124181
中的子查询它从hive 0.13 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SubQueries – hlagos
啊有趣的是,它只支持IN,NOT IN ,EXISTS和NOT EXISTS我曾使用'=',但没有奏效。 – user3124181