hive高频使用的拼接函数及“避坑”

hive高频使用的拼接函数及"避坑"

说到拼接函数应用场景和使用频次还是非常高,比如一个员工在公司充当多个角色,我们在底层存数的时候往往是多行,但是应用的时候我们通常会只需要一行,角色字段进行拼接,这样join其他表的时候呢也不会造成数据被重复引用计算。

1、拼接多个字符串concat_null(...)

从上图中的说明中我们可以看到,在应用场景中,通常使用concat_null(...)防止由于有null存在导致的拼接异常。

2. 用分隔符拼接多个字符串concat_ws(...)

需要注意的是concat_ws(...)可以直接处理掉null,而且如果将sep分割符使用''(空值),则功能和concat_null(...)一样。

3、collect_set、collect_list实现列转行

由于collect_set在实现列转行的时候进行了去重处理,自然实际应用中应用的也会更多。

4、"避坑" null和非字符串字段

由于在实际生产环境中,我们所使用的引擎有所不同,兼容性也不同。有时候NULL和非字符串字段在查询时也会出现问题。

1、通常我们可以把null进行替换。if(字段名 is null,'',字段名)

2、非字符串转化为字符串 cast(字段名 as string)

sql 复制代码
`SELECT  id,     concat_ws(',',collect_set(         cast(if(角色 is null,'',角色) as string)         )) AS `角色`    
      -- 将每个id对应多个的角色去重组合放到一行,并使用英文','分隔角色   
FROM emp   WHERE dt = '20230618'   GROUP BY 1   `
相关推荐
K_i1344 小时前
Hadoop 集群自动化运维实战
运维·hadoop·自动化
Q26433650237 小时前
【有源码】基于Python与Spark的火锅店数据可视化分析系统-基于机器学习的火锅店综合竞争力评估与可视化分析-基于用户画像聚类的火锅店市场细分与可视化研究
大数据·hadoop·python·机器学习·数据分析·spark·毕业设计
想ai抽17 小时前
深入starrocks-多列联合统计一致性探查与策略(YY一下)
java·数据库·数据仓库
starfalling102417 小时前
【hive】一种高效增量表的实现
hive
顧棟19 小时前
【Yarn实战】Yarn 2.9.1滚动升级到3.4.1调研与实践验证
hadoop·yarn
D明明就是我1 天前
Hive 拉链表
数据仓库·hive·hadoop
嘉禾望岗5031 天前
hive join优化和数据倾斜处理
数据仓库·hive·hadoop
yumgpkpm1 天前
华为鲲鹏 Aarch64 环境下多 Oracle 数据库汇聚操作指南 CMP(类 Cloudera CDP 7.3)
大数据·hive·hadoop·elasticsearch·zookeeper·big data·cloudera
忧郁火龙果1 天前
六、Hive的基本使用
数据仓库·hive·hadoop
忧郁火龙果1 天前
五、安装配置hive
数据仓库·hive·hadoop