我试图传递直线变量。源文件名命令无法用值替换变量。相同的命令使用配置单元-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}
1条答案
按热度按时间o2g1uqev1#
我可以用直线连接到Hive,但在那里我无法操作任何东西。下面是访问Hive的方法。