HIVE SQL通过Lateral View + explode实现列转行

这篇具有很好参考价值的文章主要介绍了HIVE SQL通过Lateral View + explode实现列转行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原表:

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
;

注:

  1. explode函数:处理map结构的字段,将数组转换成多行,所以此处使用了split函数将b列转为array数组类型。
  2. 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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【hive】行转列—explode()/posexplode()/lateral view 函数使用场景

    功能: 用于和UDTF函数(explode,split)结合使用,把某一行数据拆分成多行数据,再将多行结果组合成一个支持别名的虚拟表。 主要解决select使用UDTF做查询的过程中查询只能包含单个UDTF,不能包含其它字段以及多个UDTF的情况。 语法:LATERAL VIEW udtf(expression) tableAlias AS columnAlia

    2024年04月09日
    浏览(41)
  • explode与lateral view使用详解(spark及hive环境对比)

    定义: explode函数能够将array及map类型的数据炸开,实现一行变多行 格式: select explode(array/map) from table 示例 原始数据tmp表 name id goods a 1 book_a,food_a b 2 book_b,food_b c 3 null  输出结果 goods_col book_a food_a book_b food_b 定义: Lateral 也是用来对数组进行列转行的,Lateral View主要解决在

    2024年02月03日
    浏览(33)
  • Hive SQL——explode拆分函数&多行(列)合并为一行(列)&reflect函数

    cd /data/import/ sudo vi test_explode_map_array.txt 添加以下文件内容 小明    产品1,产品2,产品3    性别:男,年龄:24 小花    产品4,产品5,产品6    性别:女,年龄:22  map_key map_value 年龄 24 性别 男 年龄 22 性别 女 prod_arr_new 产品1 产品2 产品3 产品4 产品5 产品6 name prod_arr_new 小明 产品1

    2024年02月15日
    浏览(51)
  • hive lateral view 实践记录(Array和Map数据类型)

    目录 一、Array 1.建表并插入数据  2.lateral view explode 二、Map 1、建表并插入数据 2、lateral view explode() 3、查询数据 正确插入数据: 原数据 结果:  --------最开始错误的插入数据法-------  原数据  step1: step2: 备注: 比原表数据少了 双引号 综上,以上的插入数据是不对的!!

    2024年02月11日
    浏览(41)
  • Hive中的explode函数、posexplode函数与later view函数

      在离线数仓处理通过HQL业务数据时,经常会遇到行转列或者列转行之类的操作,就像concat_ws之类的函数被广泛使用,今天这个也是经常要使用的拓展方法。 2.1 函数语法 2.2 函数说明 explode 函数是UDTF 函数,将hive一列中复杂的array或者map结构拆分成多行。 Explode函数是不允

    2024年04月09日
    浏览(38)
  • 大数据 Hive - 实现SQL执行

    MapReduce的出现大大简化了大数据编程的难度,使得大数据计算不再是高不可攀的技术圣殿,普通工程师也能使用MapReduce开发大数据程序。 但是对于经常需要进行大数据计算的人,比如从事研究商业智能(BI)的数据分析师来说,他们通常使用SQL进行大数据分析和统计,MapRed

    2024年02月02日
    浏览(43)
  • MySQL实现数据炸裂拆分(类似Hive的explode函数的拆分数组功能)

    背景描述 ​ 在Hive中,\\\"explode\\\"函数用于将数组类型的列拆分为多行,以便对数组中的每个元素进行处理。然而,在MySQL中,并没有直接的类似功能。但是,我们可以使用一些技巧来模拟这个功能,实现在MySQL中拆分数组并进行查询的操作。本文将介绍如何在MySQL中实现类似Hiv

    2024年02月11日
    浏览(42)
  • HIVE SQL实现分组字符串拼接concat

    在Mysql中可以通过 group_concat() 函数实现分组字符串拼接,在HIVE SQL中可以使用 concat_ws()+collect_set()/collect_list() 函数实现相同的效果。 实例: a b c 2014 B 9 2015 A 8 2014 A 10 2015 B 7 2014 B 6 1.concat_ws+collect_list 非去重拼接 查询结果: a col_b col_c 2014 B-A-B 9-10-6 2015 A-B 8-7 2.concat_ws+collect_se

    2024年02月12日
    浏览(44)
  • 三种SQL实现聚合字段合并(presto、hive、mysql)

    需求:按照项目名,以逗号合并参与人

    2024年02月16日
    浏览(45)
  • HIVE SQL 根据主键去重并实现其余字段分组聚合

    相同个人id下所有字段按时间顺序补位,取首个不为空值 * 注意:此处是取的首个不为空(即不为null)的字段,所以在实际使用过程中应提前将空字符串转为null值。

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包