【发布时间】:2018-02-03 01:42:30
【问题描述】:
当我在 HIVE 中执行以下查询时,它给我的是当前日期,而不是 USER_INFO 表中的列值。
SELECT CURRENT_DATE
FROM USER_INFO
LIMIT 1;
如何转义用作 HIVE 上的列名的保留字?
感谢和问候, 卡姆莱什
【问题讨论】:
标签: hive escaping reserved-words
当我在 HIVE 中执行以下查询时,它给我的是当前日期,而不是 USER_INFO 表中的列值。
SELECT CURRENT_DATE
FROM USER_INFO
LIMIT 1;
如何转义用作 HIVE 上的列名的保留字?
感谢和问候, 卡姆莱什
【问题讨论】:
标签: hive escaping reserved-words
知道了。
有两种方法
1 您可以在关键字前后使用撇号,如下所示。
SELECT CURRENT_DATE
FROM `USER_INFO`
LIMIT 1;
2 如果您使用 unix shell 执行它(即使用 sh 命令),您可以执行下面显示的设置
hive.support.sql11.reserved.keywords=false
希望这会有所帮助。
感谢和问候, Kamleshkumar 古吉拉特语
【讨论】:
为了查询列中的保留字(例如“users”或“current_date”)
SELECT `CURRENT_DATE`
FROM USER_INFO
LIMIT 1;
注意撇号类型 `(正如 Wheezil 指出的那样,这个字符是“反引号”,但我想指出,在国际键盘中,这个字符相对难以输入)
自答没问题,但因查询错误而产生误导,在此添加答案以供日后参考。
【讨论】: