我正在尝试在Hive中执行以下查询:
SELECT
regexp_replace('2016-08-05_11:29:46', '\\_', ' ') as tmstmp,
distinct(P.name)
FROM table P;
它抛出一个异常,表示无法识别选择目标中'distinct''(''P'附近的输入。
就像我在运行查询时交换列一样:
SELECT
distinct(P.name),
regexp_replace('2016-08-05_11:29:46', '\\_', ' ') as tmstmp
FROM table P;
它工作正常。对这个问题有什么想法吗?
据我所知,这是蜂巢在选择语法中施加的限制。根据蜂巢语言手册中的Select语法,DISTINCT应该排在第一位,然后是其他表达式。
参考:https : //cwiki.apache.org/confluence/display/Hive/LanguageManual+Select
我猜是DISTINCT的原因是行级操作(即使将其指定为列的函数调用),尤其是在配置单元中,它将是mapreduce操作。
在SQL ANSI标准支持的数据库引擎(例如Mysql)中也可以观察到类似的行为。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句