hive—常用的函数整理

1、size(split(...))函数用于计算分割后字符串数组的长度

1)实例:由客户编号列表计算客户编号个数

sql 复制代码
--数据准备
with tmp_test01 as (
select 'tag074445270' tag_id,'202501'busi_mon , '012399931003,012399931000' index_val
union all
select 'tag074445271' tag_id,'202501'busi_mon , '037100006340,030600050969,030600012604' index_val
union all
select 'tag074445271' tag_id,'202501'busi_mon , '' index_val
)

--计算客户编号个数
select tag_id, busi_mon,index_val,
COALESCE(SUM(case when length(trim(index_val)) >0 then size(split(index_val, ',')) else 0 end ), 0) AS index_val_0, --计算结果
size(split(index_val,",")) DD,  --数组长度
split(index_val,",") SS --字符串分隔情况
from tmp_test01
group by tag_id, busi_mon,index_val

注:1、空字符串处理 ‌:如果分割的字段串是空字符串(例如a=''),size(split(a, ','))的结果为1,因为空字符串被视为一个元素‌;

2、null值处理 ‌:如果分割的字段串是null(例如a is null),size(split(a, ','))的结果为-1

相关推荐
smchaopiao6 小时前
Hive中的排序与分桶技术详解
数据仓库·hive·hadoop
tsyjjOvO3 天前
SpringMVC 从入门到精通
数据仓库·hive·hadoop
Francek Chen3 天前
【大数据存储与管理】分布式数据库HBase:05 HBase运行机制
大数据·数据库·hadoop·分布式·hdfs·hbase
zzzzzwbetter3 天前
Hadoop完全分布式部署-Master的NameNode以及Slaver2的DataNode未启动
大数据·hadoop·分布式
weixin_449310843 天前
ETL转换和数据写入小满OKKICRM的技术细节
数据仓库·php·etl
IvanCodes3 天前
Hive IDE连接及UDF实战
ide·hive·hadoop
yumgpkpm3 天前
华为昇腾910B 开源软件GPUStack的介绍(Cloudera CDH、CDP)
人工智能·hadoop·elasticsearch·flink·kafka·企业微信·big data
lifewange4 天前
Hive数据库
数据库·hive·hadoop
五月天的尾巴5 天前
hive数据库模糊查询表名
hive·查询表名
蓝魔Y5 天前
hive—1.1、执行优化
hive