Hive запрос для поиска имени таблицы, содержащей определенный столбец - PullRequest
0 голосов
/ 10 февраля 2020

Я написал следующий запрос в SQL Сервер для просмотра имен таблиц и столбцов

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

Существует ли аналогичный запрос, который можно написать в Hive для получения аналогичного результата? Если нет, то как мне найти список таблиц в конкретной базе данных, которая содержит определенный столбец?

1 Ответ

0 голосов
/ 10 февраля 2020

Не думаю, что в Hive есть какая-либо опция. Вы можете использовать сценарии оболочки, чтобы получить тот же результат. Как то так:

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"
...