Hive行转列的实现方式
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,本篇内容主要讲解"Hive行转列的实现方式",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Hive行转列的实现方式"吧!前言传统关系型数据库中,无论是Ora
千家信息网最后更新 2024年11月30日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安全错误
数据库的锁怎样保障安全
江苏南京互联网服务器虚拟主机
集客网络技术支撑岗位竞聘
云服务器 java
基于开源软件开发的
江苏联通宽带dns服务器地址
金山区正规软件开发收费套餐
126邮箱imap服务器
东城ibm服务器回收价钱
全球疾病负担数据库介绍
互联网黑科技的小说
服务器怎么下载头条
ukey提示服务器连接异常
数据库关系图设计器免费完整版
宁波mes软件开发商
服务器有必要安装安全狗吗
小宵网络安全的主持词
电视网络安全教育平台登录入口
能够进行期刊论文检索的数据库有
服务器定时任务设置linux
微信各项记录服务器保存多长时间
国泰安数据库可以查什么数据
ktv服务器上没有优盘
数据库服务器和应用服务器配置
网络安全构架规划设计
金蝶软件开发票流程
重庆分布式服务器虚拟主机
数据库重复值刷选
云南农信服务器繁忙是什么意思
中国海关数据库使用说明
数据库左右连接练习题