Как передать beeline hive var для исходной команды?

Я пытаюсь передать переменную beeline. Команда имени исходного файла не может заменить переменную значением. Та же команда работает с использованием hive -f. Пожалуйста, найдите команды ниже.

Примечание:

cat >dev_env.hql
set hivevar:l1_gcb_trxn_db_path="hdfs://quickstart.cloudera:8020/user/hive/warehouse/l1_app_gcb/process/l1_gcb_trxn";

SET hivevar:myvar=dev;
**source /data/1/appgcb/config/"${myvar}"_env.hql;**

create database l1_gcb_trxn
location ${l1_gcb_trxn_db_path} ;

Ошибка

 jdbc:hive2://quickstart.cloudera:10000/def> source /data/1/appgcb/config/"${myvar}"_env.hql;
0: jdbc:hive2://quickstart.cloudera:10000/def> create database l1_gcb_trxn
. . . . . . . . . . . . . . . . . . . . . . .> location ${l1_gcb_trxn_db_path} ;
Error: Error while compiling statement: FAILED: ParseException line 2:9 mismatched input '$' expecting StringLiteral near 'location' in database location specification (state=42000,code=40000)

Но hive -f может заменить переменную.

hive -f "${PROJECT_DIR}/tmp/create_db_l1_gcb_trxn.hql" --hivevar db_env=${db_env}

person user3858193    schedule 24.07.2019    source источник


Ответы (1)


Я смог подключиться к улью с помощью Beeline, но у меня нет доступа, чтобы манипулировать чем-либо там. ниже работает для получения доступа к улью.

#!/bin/bash
echo "Executing the hive query - starts"

beeline --showHeader=true --outputformat=csv2 -u jdbc:hive2://hostname.com:10000 -n username -p password -e "select * from tablename limit 5;"


echo "Executing the hive query - ends"
person vikrant rana    schedule 25.07.2019
comment
create_db_l1_gcb_trxn.hql содержит оператор created db, а db_env=${db_env} содержит файл env. Ответ, которым вы поделились, здесь не поможет. Спасибо за быстрый ответ. - person user3858193; 25.07.2019
comment
Пример ниже: Hive -f работает. =jdbc:hive2://quickstart.cloudera:10000/куст по умолчанию -f ${line} --hivevar param_file=${param_file} beeline -u $beeline_url -f ${line} --hivevar param_file=${param_file} . - person user3858193; 26.07.2019
comment
Работает нормально :: hive -f hive_source_test.hql --hivevar hive_var_file=${hive_var_file} Не работает: beeline -u ${beeline_url} -f hive_source_test.hql --hivevar hive_var_file=${hive_var_file} . Не удалось скомпилировать переменную Ошибка: 0: jdbc:hive2://quickstart.cloudera:10000/def› source ${hive_var_file}; Закрытие: 0: jdbc:hive2://quickstart.cloudera:10000/default - person user3858193; 13.08.2019