【发布时间】:2018-01-22 01:05:38
【问题描述】:
我有一个包含大约 100 个表的数据库,我需要构建一个连接查询以从其中两个表中获取特定数据。我知道一个,但不知道另一个。基本上我需要类似的东西:
select <tables> from <HIVE_database> where exists table.column name;
我该怎么做?
【问题讨论】:
我有一个包含大约 100 个表的数据库,我需要构建一个连接查询以从其中两个表中获取特定数据。我知道一个,但不知道另一个。基本上我需要类似的东西:
select <tables> from <HIVE_database> where exists table.column name;
我该怎么做?
【问题讨论】:
您可以编写一个 shell 脚本来搜索所有表中的列。
第一行给出了所有的表名。它被传递给读取命令 并在每个表的 describe 输出中搜索列名。
$hive -e 'show tables in <HIVE_database>' | \
while read line
do
echo "TABLE NAME : $line"
eval "hive -e 'describe <HIVE_database>.$line'" | grep "<column_name>"
done
【讨论】: