Не удалось переопределить входное значение для запроса Google Cloud Datapro c - PullRequest
1 голос
/ 26 февраля 2020

Мы переносим наши существующие рабочие места из oop в GCP Environment. Таким образом, у нас есть требование, при котором нам нужно изменить существующую команду beeline на Cloud Datapro c. В среде Had oop мы использовали следующую команду для запроса таблицы в Hive:

beeline -u BEELINE_URL --hivevar HIVE_CORE_DB=$HIVE_CORE_DB --hivevar HIVE_CORE_TBL=$HIVE_CORE_TBL -f table.hql

Входной файл table.hql содержит следующую информацию:

select count(*) from ${hivevar:HIVE_CORE_DB}${hivevar:HIVE_CORE_TBL};

Когда я конвертирую тот же код для команды Cloud Datapro c, я использую следующую команду:

gcloud dataproc jobs submit hive --cluster=cluster_name --region=region_name --params HIVE_CORE_DB=$HIVE_CORE_DB --params HIVE_CORE_TBL=$HIVE_CORE_TBL --file=table.hql

И файл table.hql снова содержит те же входные данные, что и ранее, т.е.

select count(*) from ${hivevar:HIVE_CORE_DB}${hivevar:HIVE_CORE_TBL};

Однако я не могу переопределить значения переменных, содержащихся во входном файле table.hql .

Получение следующей ошибки:

Ошибка : Ошибка при компиляции оператора: FAILED: ParseException строка 1:15 не может распознать ввод около '$' '{' 'hivevar' в имени таблицы (состояние = 42000, код = 40000)

TIA

1 Ответ

1 голос
/ 27 февраля 2020

Вместо указания входных значений под отдельными --params флагами, вам нужно использовать только один.

Попробуйте изменить

--params HIVE_CORE_DB=$HIVE_CORE_DB --params HIVE_CORE_TBL=$HIVE_CORE_TBL

часть вашей команды на

--params HIVE_CORE_DB=$HIVE_CORE_DB,HIVE_CORE_TBL=$HIVE_CORE_TBL.

...