当我尝试在群集中使用内置UDF函数或我自己的UDF函数时,如下面的hive中我似乎收到错误
select col1, col2 from xyz group by my_func(col1), col2
一直在抱怨column –col1 not found in group by expression
。
答案 0 :(得分:2)
将函数应用于列时,它不再被称为相同的东西。您应该使用as
关键字明确命名。
select group1, group2 from xyz group by my_func(col1) as group1, col2 as group2;
另外,如果您只选择要分组的列,而不是实际的分组数据,那么distinct
可能比group by
更合适吗?
答案 1 :(得分:1)
对聚合函数的调用位置错误。它应该如下:
选择my_func(col1),col1从xyz group by col1,col2
答案 2 :(得分:0)
select col1, col2 from xyz group by my_func(col1) as col1, col2
基本的是你的GROUP BY需要拥有你在SELECT子句中提到的所有col。