【发布时间】:2021-09-04 00:06:11
【问题描述】:
我有一个参数 $tbl,其中包含表列表。例如 (tbl1 tbl2 tbl3)。 现在从我的 shell 脚本中,我正在运行如下配置单元查询。
hive -e " select min(column_name) from db.tbl1
union all select min(column_name) from db.tbl2
union all select min(column_name) from db.tbl3 " > a.txt
现在脚本中的列表可能会有所不同,即如果有时它是 3 个表,那么在下一次迭代中,该变量可能会存储 4 个表。任何人都可以建议如何对查询进行参数化,以便它将获取列表中的所有值并将其传递给 hive 查询。
【问题讨论】:
-
在列表中的元素上循环,每个循环构建查询。查询完成后,调用
hive。 -
@Nic3500 嗨..我在下面使用。 for tbl in "${table[@]}" do echo "select min(column_name) from db.$tbl union all" > a.hql done .. 这个问题是最后一次 tbl 迭代也是打印 union all。我不想要最后一个联合,最后想要一个分号。谁能帮我解决这个问题。我是脚本新手
标签: linux shell unix hive scripting