Hive行转列的实现方式
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,本篇内容主要讲解"Hive行转列的实现方式",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Hive行转列的实现方式"吧!前言传统关系型数据库中,无论是Ora
千家信息网最后更新 2025年01月28日Hive行转列的实现方式
本篇内容主要讲解"Hive行转列的实现方式",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Hive行转列的实现方式"吧!
前言
传统关系型数据库中,无论是Oracle(11g之后)还是SQLserver(2005之后),都自带了Pivot函数实现行转列功能,本文主要讲述在Hive中实现行转列的两种方式。
传统数据库方式
这种方式是借鉴在Oracle或者SQLserver在支持Pivot函数之前实现行转列的方式,实际上语法没有什么变化,只是换成了Hive。
with testtable(
select 1 id,'k1' key,123 value
union all
select 1,'k2' key,124 value
union all
select 2,'k1',234 value
)
select id,
max(case when key='k1' then value else null end) k1,
max(case when key='k2' then value else null end) k2
from testtable
group by id
Map方式
这种方式的思路是把需要转列的字段及其值字段拼接成一个Hive上的key-value的map数据,具体Sql如下:
with testtable(
select 1 id,'k1' key,123 value
union all
select 1,'k2' key,124 value
union all
select 2,'k1',234 value
)
select id,kv['k1'],kv['k2']
from (
select id,str_to_map(concat_ws(',', collect_set(concat(key, '-', value))),',','-') kv
from testtable
group by id)t
总结
两种方式都可以实现行转列的功能,传统的方式易于理解,但在key的取值比较多的时候,写起来会相当繁琐,map的方式相对要简便一些。但map的方式所有的数据都collect到一起了,对内存的要求会高一些,而传统的方式通过聚合函数直接reduce,可以边运行边求值。
到此,相信大家对"Hive行转列的实现方式"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
方式
传统
数据
函数
内容
功能
字段
实际
数据库
学习
实用
更深
简便
繁琐
兴趣
前言
只是
实用性
实际上
对内
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海咨询软件开发系统
岳阳软件开发哪里好
杨浦区互联网软件开发费用是多少
网络安全科技馆万维之旅
怎么减少数据库压力
打造了一支优秀的软件开发团队
相机sdk软件开发包
计算机网络技术02414
无锡小程序软件开发工程师
纪元斗罗服务器
任丘市黑鲨软件开发工作室
数据库列怎么转换整形
怀宁租房软件开发
服务器加光影之后怎么去掉光影
敏捷软件开发流行工具
吕梁市网络安全活动
网络安全现状讲解
北京dsp软件开发
鸡西新零售报单软件开发价格
mac打开内网服务器
企业数据库意义是什么
服务器管理面板vnc
服务器安装调试报告
java中存取数据库的包
陇西县公安局网络安全管理大队
青阳微型软件开发服务销售厂
科技互联网电商平台
长阳科技工业互联网
常熟市网络安全监察大队长
云浮软件开发公司