Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 如何在按列分组的配置单元中使用聚合函数_Hadoop_Hive_Hiveql - Fatal编程技术网

Hadoop 如何在按列分组的配置单元中使用聚合函数

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

当我尝试在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(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