Доступ к переменной hiveconf в оболочке - PullRequest
1 голос
/ 05 июня 2019

Мне интересно, возможно ли получить доступ к переменной hiveconf в оболочке через куст.

Например:

set hivevar:DIR='scripts';

Если я непосредственно наберу:!sh ls -l scripts:

Вывод в этом каталоге печатается.

Однако !sh ls -l ${DIR} приводит к

ls: cannot access ${DIR}: No such file or directory

Я подозреваю, что это потому, чтопеременная является переменной улья, и когда вы запускаете команду! sh, она не распознает синтаксис ${}.Можно ли определить переменную в сценарии hql, а затем использовать ее в команде !?

1 Ответ

0 голосов
/ 05 июня 2019

Работает нормально. Удалить одинарные кавычки из переменной. Также не пишите sh после !:

Давайте создадим каталог и файл в нем:

$ mkdir scripts
$ touch ./scripts/test.txt
$ ls ./scripts
test.txt

Теперь запустите Hive, определите переменную и запустите ls:

hive> set hivevar:DIR=scripts;
hive> ! ls ${hivevar:DIR};
test.txt

Давайте удалим каталог (используя ! rm -r) в Hive и попытаемся отобразить его снова:

hive> ! rm -r ${hivevar:DIR};
hive> ! ls ${hivevar:DIR};
ls: cannot access scripts: No such file or directory
Command failed with exit code = 2

Как видите, все отлично работает.

Подробнее о синтаксисе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...