使用括号中的参数运行配置单元脚本时出错

时间:2018-03-22 15:27:23

标签: hive hiveql

我将以下代码保存在名为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}')

1 个答案:

答案 0 :(得分:0)

您应该引用变量替换的命名空间,在这种情况下为hivevar

WHERE dt<=${hivevar:MAX_DT} AND dt>=${hivevar:MIN_DT}