我有一个包含约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
关于hadoop - 如何编写查询以查找HIVE db中具有特定列名的所有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48353813/