原表:
a | b |
---|---|
Andy | <碟中谍>,<谍影重重>,<007> |
MOMO | <小鞋子>,<朋友啊你的家在哪里> |
David | ‘’ |
Lily | NULL |
实现效果
a | b |
---|---|
Andy | <碟中谍> |
Andy | <谍影重重> |
Andy | <007> |
MOMO | <小鞋子> |
MOMO | <朋友啊你的家在哪里> |
David | ‘’ |
实现代码:
select a
,film_list
from tb_name
lateral view explode(split(b,',')) t as film_list
;
注:文章来源:https://www.toymoban.com/news/detail-650266.html
- explode函数:处理map结构的字段,将数组转换成多行,所以此处使用了split函数将b列转为array数组类型。
- David记录对应的空字符串在列转行时可以保留,但是Lily记录对应的NULL值在列转行时未被保留,若需保留该行记录,可以通过以下方式实现:
select a
,film_list
from tb_name
lateral view outer explode(split(b,',')) t as film_list
;
实现效果文章来源地址https://www.toymoban.com/news/detail-650266.html
a | b |
---|---|
Andy | <碟中谍> |
Andy | <谍影重重> |
Andy | <007> |
MOMO | <小鞋子> |
MOMO | <朋友啊你的家在哪里> |
David | ‘’ |
Lily | NULL |
到了这里,关于HIVE SQL通过Lateral View + explode实现列转行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!