用于查找包含特定列的表名的sql配置单元查询

nfg76nw0  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(419)

我在SQLServer中编写了以下查询来查看表名和列名

select * from information_schema.COLUMNS where column_name like '%name%'

有没有类似的查询可以写在Hive中得到类似的结果?如果没有,那么如何在包含特定列的特定数据库中查找表列表?

1l5u6lss

1l5u6lss1#

我认为在Hive里没有任何选择。您可以使用shell脚本来获得相同的输出。像这样:

output=""
hive -S -e 'show databases' | while read database
do
   eval "hive -S -e 'show tables in $database'" | while read line
   do
     if eval "hive -S -e 'describe $database.$line'" | grep -q "<column_name"; then
          eval "hive -S -e 'show columns in $database.$line'" | while read column
          do
             output="$output$database.$line,$column"'\n'
          done
     fi
   done
done
echo -e "$output"

相关问题