Hadoop 如何在按列分组的配置单元中使用聚合函数
当我尝试在hive中的GroupBy列上使用内置UDF函数或我自己的UDF函数时,我似乎遇到了错误Hadoop 如何在按列分组的配置单元中使用聚合函数,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,当我尝试在hive中的GroupBy列上使用内置UDF函数或我自己的UDF函数时,我似乎遇到了错误 select col1, col2 from xyz group by my_func(col1), col2 它不断抱怨列–在GROUPBY表达式中找不到col1对聚合函数的调用位于错误的位置。应按如下方式进行: 按col1,col2从xyz组中选择my_func(col1),col2对聚合函数的调用位于错误的位置。应按如下方式进行: 按col1,col2从xyz组中选择my_func(col
select col1, col2 from xyz group by my_func(col1), col2
它不断抱怨
列–在GROUPBY表达式中找不到col1
对聚合函数的调用位于错误的位置。应按如下方式进行:
按col1,col2从xyz组中选择my_func(col1),col2对聚合函数的调用位于错误的位置。应按如下方式进行:
按col1,col2从xyz组中选择my_func(col1),col2当您将函数应用于列时,它不再被称为同一事物。您应该使用
as
关键字显式命名它
select group1, group2 from xyz group by my_func(col1) as group1, col2 as group2;
此外,如果您只选择分组依据的列,而不是实际分组的数据,那么当您将函数应用于列时,
distinct
可能比groupby
?更合适。您应该使用as
关键字显式命名它
select group1, group2 from xyz group by my_func(col1) as group1, col2 as group2;
select col1, col2 from xyz group by my_func(col1) as col1, col2
此外,如果您只选择分组依据的列,而不是实际分组的数据,那么distinct
可能比group by
更合适
select col1, col2 from xyz group by my_func(col1) as col1, col2
最基本的是,您的GroupBy需要拥有您在SELECT子句中提到的所有COL
最基本的是,您的GroupBy需要拥有您在SELECT子句中提到的所有COL