Hive中行列转换具体实现及应用
1、工作应用场景
统计得到每个小时的UV、PV、IP的个数,构建如下表结构:
但是表中数据的存储格式不利于直接查询展示,需要进行调整:(以时间分区,去重、聚合等……对结果进行行列转换)
2、行转列
(1)多行转多列
case when函数
功能:用于实现对数据的判断,根据条件,不同的情况返回不同的结果,类似于java中的switch case功能
语法:
语法一:
CASE
WHEN 条件1 THEN VALUE1
……
WHEN 条件N THEN VALUEN
ELSE 默认值 END
语法二:
CASE 列
WHEN V1 THEN VALUE1
……
WHEN VN THEN VALUEN
ELSE 默认值 END
(2)多行转单列
可以指定分隔符的字符串拼接函数:concat_wa只支持string、array[string]
收集函数:
3、列转行
(1)多列转多行
(2)单列转多行
lateral view 侧视图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步