基本上我想自动化基于hive查询的作业。这将把列表作为文件和查询的输入,通过使用此输入应用过滤器来生成报告。输入是一个列表,我想在hive查询中作为“where-in”条件传递。我的查询看起来像,
// temp.sql // 插入表1 SELECT * FROM Table2其中pixel_id在($ PIXEL);
我试图在这样的命令行中传递输入, hive -f temp.sql -d PIXEL ='('608207','608206','608205','608204','608203','608201','608184','608198','608189')'> ; temp.log 2>& 1&
我不确定这是否正确?
任何人都有想法解决这个问题吗?
请建议我一些解决方法。
答案 0 :(得分:0)
如果pixel_id是数字,您可以使用这个简单的脚本:
hive -e "select * from orders where order_id in (${1})"
你可以通过转义“喜欢这个”\“1 \”,\“2 \”“
来为字符串列做到这一点答案 1 :(得分:0)
尝试像用','分隔列表的字符串一样传递-
在bash上运行此命令:Event::fake([NewItemCreated::class]);
考虑脚本如下:hive -hiveconf myargs="1','2','3','4"