我通过beeline连接hive并传递hivevar以在hive中创建表,但在文件内部变量未设置。下面是我设置了所有值的代码。当我回显时,所有值均已正确设置并显示。

beeline -u "${HIVE_CON}" --hivevar DB_NAME=${DB_NAME} --hivevar name=${tblName} --hivevar fileLocation=${fileLocation} --hivevar hiveSchema="${hiveSchema}" -f ${CRT_TBL_NOT_PRQ_QUERY_FILE}

Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2 use ${hivevar:DB_NAME};
No rows affected (0.235 seconds)
0: jdbc:hive
0: jdbc:hive DROP TABLE IF EXISTS ${hivevar:name};
No rows affe
0: jdbc:hive
0: jdbc:hive CREATE EXTERNAL TABLE ${hivevar:name}
0: jdbc:hive (
0: jdbc:hive    ${hivevar:hiveSchema}
0: jdbc:hive )
0: jdbc:hive LOCATION '${hivevar:fileLocation}';

提前致谢。

最佳答案

只需在 hive 查询中使用$ {var_name}
例如:以下作品。

beeline -u <connection_string> --hivevar table_name=temp_table1 -e 'create table ${table_name} (i int);'

关于hadoop - Hive变量未在查询文件中设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37269526/

10-09 15:52