Hive SQL 数组或map拆解函数 explode 详解 | 您所在的位置:网站首页 › hive炸裂函数的参数 › Hive SQL 数组或map拆解函数 explode 详解 |
hive 内置的 explode 函数,它接收一个 array 或者 map 类型的数据作为输入,然后将 array 或 map 里面的元素按照每行的形式输出。一般情况下,其可以配合 LATERAL VIEW 一起使用。 1解析 array 或 map 数据2搭配 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
|
CopyRight 2018-2019 实验室设备网 版权所有 |