HiveSQL之lateral view

lateral view是hiveQL中的一个高级功能,用于和表生成函数一起,来处理嵌套数组和结构的数据,特别是在处理复杂的数据结构如JSON或数组内嵌套数组时特别有用。它允许用户在每一行上应用TGF(表生成函数),将生成的元素作为多行返回,或者多列返回。

原理

常规情况下,SQL查询是对行进行操作的,每行数据都是独立的,如果想对一行中某列数据进行拆分成多行或者多列,SQL中的单独查询是不允许的。lateral view解决了这个问题,它允许将TGF结果,“侧视”到原始数行旁边,实际上是将TGF的输出与原始行的其他列结合起来形成新的行集。

表生成函数(table-generating functions)TGF

explode

将数组或者映射转换为多行,对于数组,每个元素成为一行;对于映射每个键值对成为一行。

SELECT id, number
FROM example_table
LATERAL VIEW explode(numbers) tbl AS number;

json_tuple

解析JSON格式的字符串,每个key成为一行

相关推荐

  1. HiveQL详解

    2024-04-09 08:22:02       18 阅读
  2. ✨✨✨HiveSQL

    2024-04-09 08:22:02       12 阅读
  3. HiveSQL基础Day03

    2024-04-09 08:22:02       13 阅读
  4. HiveSQL基础Day04

    2024-04-09 08:22:02       12 阅读
  5. HiveSQL题——用户连续登陆

    2024-04-09 08:22:02       29 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 08:22:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 08:22:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 08:22:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 08:22:02       18 阅读

热门阅读

  1. [leetcode] 110. 平衡二叉树

    2024-04-09 08:22:02       10 阅读
  2. C语言函数指针:编程的“瑞士军刀”

    2024-04-09 08:22:02       14 阅读
  3. 论文复现 关于计算痤疮数量来进行分类

    2024-04-09 08:22:02       14 阅读
  4. 序列化结构(protobuf)实现一个TCP服务器(C++)

    2024-04-09 08:22:02       10 阅读
  5. 构成CNN主要组件思想---BP

    2024-04-09 08:22:02       12 阅读
  6. SpringBoot整合Logback日志框架

    2024-04-09 08:22:02       12 阅读