collect_set 的返回类型是 array<type>,其中 type 是输入列的数据类型。这意味着 collect_set 会返回一个数组,数组中的元素类型与输入列的数据类型相同,并且数组中的元素是唯一的。 示例 假设我们有一个名为 sales 的表,其中包含以下数据: idproductregion 1 ProductA East 2 ProductB West 3 ProductA...
它返回一个包含唯一值的无序数组,其中每个值只出现一次。collect_set函数可以应用于数值型、字符串型和复杂类型的列。 collect_set函数的语法如下: ``` collect_set(expression) ``` 其中expression表示要收集唯一值的列或表达式。 使用collect_set函数可以在Hive查询中完成一些有用的任务。以下是一些示例: 1.收集...
1.collect_set 分组组合数组(数组内去重) collect_set select code ,collect_set(tenant_id) from dim_mkt_event group by code; 2.array_contains 数组中是否包含 ,返回布尔类型 select code ,array_contains(set_tenant,1211809272448907264) ,!array_contains(set_tenant,1211809272448907264) from ( select code ...
1 selectusername, collect_list(video_name)fromt_visit_videogroupbyusername ; 但是上面的查询结果有点问题,因为霸王别姬实在太好看了,所以李四这家伙看了两遍,这直接就导致得到的观看过视频列表有重复的,所以应该增加去重,使用collect_set,其与collect_list的区别就是会去重: 1 selectusername, collect_set(video...
collect_set :将某字段去重汇总,返回array类型字段 测试表:test2 name tom marry peter tom tom marry select collect_set(name) from test2; -- ["tom","marry","peter"] collect_list :将某字段不去重汇总,返回array类型字段 select collect_list(name) from test2; -- ["tom","marry","peter","tom...
第二步: 使用 collect_set ,返回 集合元素数组 4.2 列转行 1)函数说明(表生成函数,如:json_tuple,parse_url_tuple) EXPLODE(col):将hive一列中复杂的array或者map结构拆分成多行。(炸裂函数) 用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias ...
语法: A LIKE B 操作类型: strings 描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B 的正则语法,则为TRUE;否则为FALSE。B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。hive> select 1 from iteblog where 'football' like 'foot%'; 1 hive> select 1 from iteblog...
可以看到,结果字段为数组类型! 我们可以通过下标去获取数组中的数据: select month,day,collect_set(cookieid)[0] c0 from test2 group by month,day 1. select month,day,collect_set(cookieid)[1] c1 from test2 group by month,day 1. 从上面结果可以看到,取值时如果下标超出范围,会返回NULL ...