1.行转列(将多行数据合并成一列)

1.1源表person_info:

name constellation blood_type
张三 白羊座 A
李四 射手座 A
王五 白羊座 B
赵六 白羊座 A
刘七 射手座 A

1.2需求:把星座和血型一样的人归类到一起,如下表:

cbt name
射手,A 李四,刘七
白羊,A 张三,赵六
白羊,B 王五

1.3函数:

concat(字段1,分割符,字段2) --将一行的多个字符串合并成一个字符串
concat_ws(分割符,字段1) --将一列的多个字符串按指定分隔符合并成一个字符串 group by ...
collect_set(字段) --合并的字段去重 搭配使用  concat_ws(',',collect_set(name))
collect_list(字段)  --合并的字段不去重   concat_ws(',',collect_list(name))

1.4代码:

select
cbt,
concat_ws(',',collect_list(name)) as name
from
(selectconcat(constellation,',',blood_type) as cbt,namefrom person_info
) tmp
group by cbt
;

1.5结果展示:

OK
+--------+--------+--+
|  cbt   |  name  |
+--------+--------+--+
| 射手座,A  | 李四,刘七  |
| 白羊座,A  | 张三,赵六  |
| 白羊座,B  | 王五     |
+--------+--------+--+
3 rows selected (72.361 seconds)
0: jdbc:hive2://wxt01:10000>

2.列转行(将一列数据炸裂,通过某个间隔符切分转化为多行数据)

2.1源表movie

name category
《疑犯追踪》 悬疑,动作,科幻,剧情
《Lie to me》 悬疑,警匪,动作,心理,剧情
《战狼2》 战争,动作,灾难

2.2需求:将电影分类中的数组数据展开。结果如下:

《疑犯追踪》      悬疑
《疑犯追踪》      动作
《疑犯追踪》      科幻
《疑犯追踪》      剧情
《Lie to me》   悬疑
《Lie to me》   警匪

2.4函数

explode(字段) --将hive中一列中复杂的array或map结构拆分成多行(炸裂)
--使用 lateral view explode(category)

2.3代码

select
name,
category_name
from movie
lateral view explode(category) a as category_name
;

2.4结果展示

OK
+--------------+----------------+--+
|     name     | category_name  |
+--------------+----------------+--+
| 《疑犯追踪》       | 悬疑             |
| 《疑犯追踪》       | 动作             |
| 《疑犯追踪》       | 科幻             |
| 《疑犯追踪》       | 剧情             |
| 《Lie to me》  | 悬疑             |
| 《Lie to me》  | 警匪             |
| 《Lie to me》  | 动作             |
| 《Lie to me》  | 心理             |
| 《Lie to me》  | 剧情             |
| 《战狼2》        | 战争             |
| 《战狼2》        | 动作             |
| 《战狼2》        | 灾难             |
+--------------+----------------+--+
12 rows selected (0.393 seconds)
0: jdbc:hive2://wxt01:10000>

本文参考www.51doit.cn

hivesql:行列转换相关推荐

  1. [转载]SQL Server行列转换实现

    一.Pivot和UnPivot介绍 1.Pivot介绍 PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVO ...

  2. SQL Server 行列转换(2)

    参考前一个例子http://www.cnblogs.com/insus/articles/1969896.html,现想使用另外一种方式来处理行列转换,实现下面效果: 参考代码: View Code ...

  3. Oracle 行列转换总结

    行列转换包括以下六种情况: *列转行 *行转列 *多列转换成字符串 *多行转换成字符串 *字符串转换成多列 *字符串转换成多行 下面分别进行举例介绍. 首先声明一点,有些例子需要如下10g及以后才有的 ...

  4. SAP行列转换的一个方法

    经常会遇到行列转换的需求.于是就找到了这样的一段代码.虽然也有其他的转换方法.但是都没有及时的记录.于是 就想起了将这段经典代码写在这里. TABLES spfli. data:     it_dat ...

  5. SQL语句行列转换两种方法 case ...when 和pivot函数应用

    2019独角兽企业重金招聘Python工程师标准>>> SQL语句行列转换两种方法 case ...when 和pivot函数应用SQL语句行列转换两种方法 case ...when ...

  6. DataStage系列教程 (Pivot_Enterprise 行列转换)

    有人提到Pivot_Enterprise这个组件,之前没有用过,今天捣腾了会,写下来供以后参考,如果有什么不对的,还请多指出,谢谢! Pivot_Enterprise主要用来进行行列转换. 1 示例 ...

  7. 用python做数据分析(行列转换)

    python行列转换 用reshape是有问题的,因为这是根据一个顺序的数进行遍历的 但是,用下面这个函数就有了对应的操作 C:\Users\Administrator>python Pytho ...

  8. SQL Server 2005之PIVOT/UNPIVOT行列转换

    SQL Server 2005之PIVOT/UNPIVOT行列转换 作者: NinGoo(http://ningoo.itpub.net) 发表于: 2007.04.18 11:49 分类: SQL ...

  9. 在Sqlserver下巧用行列转换日期的数据统计

    在Sqlserver下巧用行列转换日期的数据统计 原文:在Sqlserver下巧用行列转换日期的数据统计 在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数 ...

  10. mysql行列转换_Excel、SQL、Python分别实现行列转换

    目录: Excel Excel 实现行转列 Excel 实现列转行 Python Python 实现行转列 Python 实现列转行 SQL MySQL 实现行转列 MySQL 实现列转行 一.Exc ...

最新文章

  1. python培训好学吗-python难学吗?为什么上了python培训还是学不会?
  2. 搭建阿里云ecs服务器(一:购买)
  3. 查看Tomcat版本及多版本切换
  4. 程序员面试100题之四:求1+2+...+n
  5. 大型科技公司架构:中台模式的爱与恨
  6. [蓝桥杯]试题 基础练习 Huffuman树
  7. 四种方法实现两个等大数组之间内容交换
  8. 程序员教你十分钟做出炫酷桌面
  9. Hadoop Shell 命令详解
  10. win7系统如何卸载漏洞补丁--win10专业版
  11. php快递按选择次数排序,php快递接口查询api 不限制次数
  12. python获取ip所在地详细地址_Python 获取本机 IP 地址
  13. java获取本机的外网IP地址(亲测有效)
  14. 2020中国隧道与地下工程大会(CTUC)暨中国土木工程学会隧道及地下工程分会第二十一届年会
  15. 打开记事本文件出现黑色方块的解决办法
  16. 支付宝sdk集成,报系统繁忙 请稍后再试(ALI64)
  17. 在线工具:电脑怎么提取图片中的文字?图片如何转化为文字?
  18. 数据库中几个基本概念 主码 外码
  19. Java笔记(2)--java基础语法
  20. 为什么我们需要独立的B2C网店

热门文章

  1. excel学习-自定义图表颜色(QQ截图+colorpix取色器)
  2. 数据结构——线段树学习笔记
  3. 单片机零基础入门(8-5)模块化编程
  4. 电脑开机主板报警1长2短是怎么回事?
  5. Inspinia_admin-V2.3原版(英文)
  6. Qt中Opencv配置
  7. [深度大牛]·计算机视觉王者何凯明
  8. python妹子图软件下载_【简单爬虫】 爬取妹子图 自动下载 [改进]
  9. Python 免费翻译API
  10. cad高程点怎么抽稀_地形图缩编1:500变成2000,植被符号抽稀功能,