set变量

sgtfey8w  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(347)

我需要通过beeline在另一个配置单元查询中使用配置单元查询的输出作为变量。比如说 select * from 123 where some_variable='select from xyz'; 但是,hive不支持where子句中的子查询,因此我将通过shell命令来实现。使用标准的hive cli很容易做到这一点,我可以这样做: my_shell_var=$(hive -S -e "select from xyz;") 然后我会跑: hive -e "select * from 123 where some_variable=$my_shell_var;" 但是,直线输出包含边框,因此我的shell var被包围 +------+ some output +------+ 所以我不能把这个插入到下一个查询中,因为额外的字符改变了我的字符串。有没有一种方法可以从直线输出中删除边框,或者有没有一种替代方法来实现我的目标?

htzpubme

htzpubme1#

为什么不用in子句?
从123中选择*某个变量(从xyz中选择)

imzjd6km

imzjd6km2#

我找到了一个方法,你可以说: --showHeader=false --outputformat=tsv2 在beeline cli命令ie中。 my_shell_var=$(beeline --showHeader=false --outputformat=tsv2 -e "your query") 然后使用shell将该变量放入下一个查询中: beeline -e "select * from 123 where some_variable=$my_shell_var;" 输出将没有任何标题(--showheader=false)或边框(--outputformat=tsv2)。

相关问题