当前位置:   article > 正文

hiveSQL行转列 列转行_hivesql 列转行

hivesql 列转行

行转列

注释:多个字段的值合并成一个字段的值

主要使用函数:
	concat()       # 使用concat时,每个字段之间是否加分隔符
	concat_ws()    # 使用concat_ws时,可以依次写多个字段。注意数据类型:concat_ws CONCAT_WS must be "string or array<string>"
	collect_set()  # 去重
	collect_list() # 不去重
select concat(empno,'-',ename,'-',sal,'-',deptno) from emp;
select concat_ws('-',cast(empno as string),ename,cast(sal as string)) from emp;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

列转行

注释:一个字段的值炸裂成多个字段的值

lateral view explode(集合元素) 表别名 as 列别名

lateral view posexplode(集合元素1) 表别名 as 位置1,列别名
lateral view posexplode(集合元素2) 表别名 as 位置2,列别名
where 指定第一次炸裂的哪个元素 与 第二次炸裂的哪个元素 匹配条件
 
lateral view posexplode(event_list) t1 as pos1,event
lateral view posexplode(res_list) t2 as pos2,res
where pos1=pos2; 

 
explode(col):将hive一列中复杂的array或者map结构拆分成多行。
posexplode(col):将hive一列中复杂的array或者map结构拆分成 带索引 的多行。
split(str, separator):将字符串按照后面的分隔符切割,转换成字符array。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/742679
推荐阅读
相关标签
  

闽ICP备14008679号