Hive行转列的实现方式
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,本篇内容主要讲解"Hive行转列的实现方式",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Hive行转列的实现方式"吧!前言传统关系型数据库中,无论是Ora
千家信息网最后更新 2024年11月27日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安全错误
数据库的锁怎样保障安全
网络安全故事100字简短
网络安全手抄报8k纸四年级简单
本地云端服务器软件
西安优农网络技术有限公司
网络技术框架设计交流
通达信看不了3年前数据库
云网络安全连接
网络安全三类
李天生数据库基础教程
数据库系统维护
倩女无法连接到服务器
vps数据库地址
黄浦区无线网络技术电话
网络安全两会2020
天龙八部店铺回迁服务器
java 连数据库
服务器引导盘重装系统
川大网络安全调剂
微擎数据库备份
ado 操作数据库
软件开发分工计划表
北大青鸟学软件开发好找工作吗
yaf框架数据库配置
数据库重命名语句
ifs数据库
查看数据库中数据表的命令
别墅装修网络安全
RNA加工因子数据库
java软件开发泰安
社区化新零售软件开发