【发布时间】:2021-12-10 11:46:36
【问题描述】:
我有一个 sample.hql 文件,其中包含以下几行。
desc db.table1;
desc db.table2;
desc db.table3;
我正在尝试从 shell 命令运行它 我想知道表中是否存在特定列 例如,如果 col_1 存在于 table1 中,则输出应显示 col1_1 is found in db.table1
我不知道如何找到它。 我正在执行下面的命令
hive -f sample.hql | grep -q "<column_name>"
但我不确定如何从每个执行行获取数据库和表名。
【问题讨论】:
-
@Ben 这太耗时了,因为每次调用我都必须访问 hive shell
-
Hive 的新(er)版本定义了符合 ANSI 的
information_schema数据库,可以直接(从直线)查询,而不是运行多个describe table。 issues.apache.org/jira/browse/HIVE-1010。所以如果你一直勤奋并跟上升级...... :)
标签: shell hadoop hive script hive-query