目录

Hive explode介绍:

Hive posexplode介绍:

Lateral View介绍:

使用多个Lateral View:

outer关键字:


Hive explode介绍:

它会将一行数据转成多行,也就是将行数据转成列数据,它所接收的参数为array和map类型的数据,语法如下:

array参数:

select explode(array) as arr_name from tableName;

map参数:

select explode(map) as (map_key,map_value) from tableName;

Hive posexplode介绍:

与explode不同的是他会多生成一列索引值,从0开始。

Lateral View介绍:

Lateral view is used in conjunction with user-defined table generating functions such as explode(). As mentioned in Built-in Table-Generating Functions, a UDTF generates zero or more output rows for each input row. A lateral view first applies the UDTF to each row of base table and then joins resulting output rows to the input rows to form a virtual table having the supplied table alias.

Lateral View与用户定义的函数(如explode())结合使用。UDTF为每个输入行生成零个或多个输出行。Lateral View首先将UDTF应用于表的每一行,然后将生成的输出行与输入行连接起来,以形成具有提供的表别名的虚拟表。

这个虚拟表会和输入的行进行join,达到连接UDTF外的select字段的目的。

如下:

也可以使用posexplode:

也可以再进一步进行聚合:

使用多个Lateral View:

将上面表的page_id也改为多个用逗号隔开的形式,如下

将page_id和addid_list都拆分开:

如果想要不要重复数据,也可以使用posexplode,然后加一个where条件,上面的数据不太合适,但是效果是相同的,几front_page-1给1,front_page-2给2,contact_page-1给4,contact_page-2给5:

其实我们发现两个列拆分后就是进行了一个全连接。

outer关键字:

UDTF默认是忽略输出空的,outer关键字的作用是在UDTF转换列的时候将其中的空也给展示出来,显示为NULL,如下:

Hive Lateral View相关推荐

  1. Hive Lateral View、视图、索引

    一.Hive Lateral View 1.Lateral View用于和UDTF函数(explode.split)结合来使用. 2.首先通过UDTF函数拆分成多行,再将多行结果组合成一个支持别名的虚 ...

  2. Hive Lateral View + explode 详解

    hive中的函数分为3类,UDF函数.UDAF函数.UDTF函数 UDF:一进一出 UDAF:聚集函数,多进一出,类似于:count/max/min UDTF:一进多出,如explore().pose ...

  3. Hive lateral view 的用法

    lateral view 的语法格式 lateral view: LATERAL VIEW udtf (expression) tableAlias AS coluumAlias ( ',' , co ...

  4. Hive Lateral View使用指南

    1. 语法 lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' columnAlias)* fromCl ...

  5. [hive]lateral view炸开两层

    一. 说明 1.lateral view 侧视图lateral view要和explode/split等UDTF函数一起使用,他可以在函数拆分成多行的基础上,将表其他字段按照拆分结果进行聚合. 2.用 ...

  6. Hive Lateral View explode字段值为空时,导致数据异常丢失解决方案

    1.问题描述 日常工作中,我们经常会用Lateral View 结合explode把非结构化数据转化成结构化数据,但是该方法对应explode的内容是有非null限制的,否则就有可能造成数据缺失. 现 ...

  7. hive lateral view explode列拆分与行转列用法

    在日常工作中,我们在处理数据时,会遇到某个列存在多个数据的情况,如果想拿到这个列里面每个数据进行后续处理的话,这种情况下有两种处理方式: 第一种:如果这个列多个数据是固定数目,可以使用split切分 ...

  8. mysql explode函数_hive中,lateral view 与 explode函数

    hive中常规处理json数据,array类型json用get_json_object(#,"$.#")这个方法足够了,map类型复合型json就需要通过数据处理才能解析. exp ...

  9. hive的lateral view行转列

    1.hive中的行转列最常用的就是lateral view的语法,例如: select id,vcol from t lateral view explode(col) vtable as vcol ...

最新文章

  1. Google Colab——用谷歌免费GPU跑你的深度学习代码
  2. 数据分析利器Jupyter Notebook!
  3. 深圳美景品牌策划机构:美景、BOBDOG传媒合作论坛广州举行
  4. Android开发之核心特性SearchView的开发使用(源代码分享)
  5. layui token 过期 重新登陆
  6. Linux下的命令总结笔记(二)
  7. python中temp_python temp是什么
  8. Overlay Surfaces (覆盖表面)
  9. leetcode43. 字符串相乘 经典大数+和*
  10. 搜索引擎登录工具_“搜索引擎营销”有多重要!你知道吗?
  11. Windows用户模式下的线程同步
  12. 剑指offer-序列化二叉树
  13. MySQL MHA切换失败一例
  14. centos从安装到环境配置
  15. C++标准库分析总结(一)
  16. Python 数独求解
  17. Safari 神器,手机平板都能用,我们找到了 14 个超实用浏览器插件
  18. How to make seperate debuginfo file
  19. 教学向|ZB利用分组Dynamesh,对模型进行重建细分!
  20. 软件设计模式“单例模式”和“工厂模式”

热门文章

  1. 图片格式区别:png8,png24,jpg,jpeg,gif,webp
  2. 转载 :【非技术】谈谈简历那些事儿
  3. linux操作系统之 组管理 终端命令(添加组删除组等命令)详解 简单易懂~
  4. 拉格朗日插值 java_插值-拉格朗日插值法
  5. 视频转换为GIF的方法有哪些
  6. FLASH与ASP通信原理入门
  7. R语言epiDisplay包的tab1函数计算数据框中指定变量的频率并可视化(一维频率表、包含频数的百分比、累积的百分比、使用条形图可视化频数分布)、设置cum.percent参数即使存在缺失值也显示
  8. 基于Unity3D的Android游戏添加google广告的方法——使用AdMob
  9. 中国对激光产品的检测认证要求
  10. Unity中实现激光效果——Unique Lasers Volume插件