Hive 基本教程

Hive SQL

Hive 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/hive-sql-collect_set-function.html

Hive SQL 聚合去重函数 COLLECT_SET 详解

Hive SQL 内置函数全解 Hive SQL 内置函数全解


Hive SQL 提供了数据分组后去重聚合函数 COLLECT_SET,它可以将分组数据排成列表并组内去重,由于其是聚合函数需要和 GROUP BY 搭配使用。

语法说明

语法

SELECT ..., COLLECT_SET(col) FROM table ... GROUP BY ...

说明

如上中,col 指的是 table 表的要聚合去重处理的字段。

常用例子

提取 struct 数组 array 类型中的某个字段,并转换成去重数组

如题所述,该情况比较复杂,即 array<struct<a:xx, b:xx>> 类型字段中,假设提取 a 字段,并将其聚合去重成一个数组字段,该操作需要 LATERAL VIEWEXPLODE 一起搭配使用,sql 示例代码如下:

SELECT  product_id
        ,COLLECT_SET(menu1_id.menu1_id)
FROM    (
            SELECT  product_id
                    ,t1.menu1_id
            FROM    xxx.dwd_product_info
            LATERAL VIEW EXPLODE(menu1) t1 AS menu1_id
            WHERE   dp = '20xx-xx-xx'
        ) 
GROUP BY product_id

这里,menu1_id 字段是如上说的 array<struct<menu1_id:int, menu1_name:string>> 类型,提取 menu1_id 并去重后转成数组。

Hive SQL 聚合统计函数 COUNT 类似于标准 SQL 的 COUNT 函数,用来计算符合条件的行数。 ...
以下是一些常见的方法,每种方法都会详细介绍其步骤流程、示例代码以及优缺点,最后进行总结对比:###方法1:使用set()去重步骤流程:1.# ...
下面我将介绍几种常见的方法,包括使用Java标准库和第三方库,以及它们的具体步骤流程和示例代码。###使用第三方库Guava添加Maven依 ...
Hive SQL 条件函数 IF 是用于处理单个列的判断查询结果,形式为 if(条件表达式, 结果1, 结果2),相当于 java 中的三目 ...
下面我将介绍一些常见的方法,包括使用循环、Set、StreamAPI等方法来实现去重,并提供相应的代码示例。假设我们有一个包含重复元素的列表 ...