hadoop - 如何编写查询以查找HIVE db中具有特定列名的所有表

标签 hadoop hive hiveql

我有一个包含约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/

相关文章:

mysql - MYSQL 数据库位 nvarchar 在 HIVE 中的合适数据类型是什么?

hadoop - 配置单元 - 为不同的列值插入行

mysql - 如何向 Hive(0.13.1) 表插入数据?

sql - HIVE 中的 LIMIT 子句真的是随机的吗?

hadoop - 尝试使用hadoop创建单节点集群

hadoop - 文件分成许多部分

hadoop - hive 错误运行选择查询

hadoop - 相当于FIRST和LAST的HIVE

hadoop - cassandra可以在非hadoop环境中工作吗

hadoop - 配置单元配置未反射(reflect)