我将以下代码保存在名为tableCreate.hql的文件中。我正在使用
从命令行运行它hive -f tableCreate.hql
我正在尝试使用参数,但如果参数周围有括号,我会不断收到错误消息,如下例所示。我想知道我需要添加引号。我是hive脚本中使用参数的新手。
原始代码:
set hive.exec.compress.output=false;
set hive.mapred.mode=nonstrict;
set hivevar:MIN_DT=20170401;
set hivevar:MAX_DT=20170301;
DROP TABLE IF EXISTS table1;
CREATE TABLE table1 AS
SELECT *
FROM table t
WHERE dt<=${MAX_DT} AND dt>=(${MIN_DT})
错误:$ {MIN_DT}附近的意外符号
修改后的代码:
set hive.exec.compress.output=false;
set hive.mapred.mode=nonstrict;
set hivevar:MIN_DT=20170401;
set hivevar:MAX_DT=20170301;
DROP TABLE IF EXISTS table1;
CREATE TABLE table1 AS
SELECT *
FROM table t
WHERE dt<=${MAX_DT} AND dt>=('${MIN_DT}')
答案 0 :(得分:0)
您应该引用变量替换的命名空间,在这种情况下为hivevar
。
WHERE dt<=${hivevar:MAX_DT} AND dt>=${hivevar:MIN_DT}