Hive 基本教程

Hive SQL

Hive 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/hive-sql-explode-function.html

Hive SQL 数组或map拆解函数 explode 详解

Hive SQL 内置函数全解 Hive SQL 内置函数全解


hive 内置的 explode 函数,它接收一个 array 或者 map 类型的数据作为输入,然后将 array 或 map 里面的元素按照每行的形式输出。一般情况下,其可以配合 LATERAL VIEW 一起使用。

解析 array 或 map 数据

hive> SELECT EXPLODE(ARRAY('A', 'B', 'C'));
OK
A
B
C
hive> SELECT EXPLODE(MAP('A', 10, 'B', 20, 'C', 30));
OK
A       10
B       20
C       30

搭配 lateral view 使用

LATERAL VIEW 顾名思义就是摊开数据,有如下几点特性:

  • LATERAL VIEW 用于和 UDTF 函数(如 explode、split)结合来使用。
  • 它通过 UDTF 函数将数据拆分成多行,再将多行结果组合成一个支持别名的虚拟表。
  • 主要解决在 SELECT 使用 UDTF 做查询的过程中查询只能包含单个 UDTF,不能包含其它字段以及多个 UDTF 的情况。

语法如下:

LATERAL VIEW udtf(expression) tableAlias AS columnAlias

示例如下:

SELECT
   a.dp,
   a.item 
FROM
   (
      SELECT
         dp,
         ARRAY(GET_JSON_OBJECT(log_info, '$.item_list')) AS item_list 
      FROM
         xxx.ods_xxx_log 
      WHERE
         dp = '2021-10-05' 
   )
   a LATERAL VIEW EXPLODE(item_list) t1 AS item

 

Hive SQL 中将字符串转成 MAP 格式(也可以当成 JSON)的函数是 STR_TO_MAP,它使用两个分隔符将文本拆分为键值对(K ...
Hive SQL 条件函数 IF 是用于处理单个列的判断查询结果,形式为 if(条件表达式, 结果1, 结果2),相当于 java 中的三目 ...
Hive SQL 内置支持绝大多数 SQL 的内置函数,其中主要包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等。 ...
Hive SQL 中将字符串拼接的函数是 CONCAT,它返回指定参数的连接字符串,此函数可以接受任意数量的输入字符串。 ...
Hive 提供了取模操作的函数 pmod,也叫做取余函数,它可以处理 int 或 double 类型参数,返回取余整数或浮点数。 ...