当前位置:   article > 正文

[Hive] explode_hive explode

hive explode

Hive 中,explode 函数用于将数组(Array)或者Map类型的列拆分成多行

每个元素或键值对为一行。这允许我们在查询中对数组或 Map 进行扁平化操作。


下面是使用 explode 函数的示例:

假设我们有一个包含数组字段的表 my_table,并且想要将该数组字段展开成多行。

创建并加载示例数据:

-- 创建 my_table 表并导入数据
CREATE TABLE my_table (
  id INT,
  values ARRAY<STRING>
);

INSERT INTO my_table VALUES (1, array('apple', 'banana', 'orange'));
INSERT INTO my_table VALUES (2, array('cat', 'dog', 'elephant'));
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

使用 explode 函数展开数组列:

SELECT id, exploded_value
FROM my_table
LATERAL VIEW explode(values) exploded_table AS exploded_value;
  • 1
  • 2
  • 3

在上述查询中,我们使用了 explode 函数来展开 values 列,并将展开后的值重命名为 exploded_value。

通过 LATERAL VIEW 关键字,我们可以在查询中使用 explode 函数,并将其作为一个虚拟表(exploded_table)进行访问。

以上查询将返回以下结果:

id | exploded_value
---+----------------
1  | apple
1  | banana
1  | orange
2  | cat
2  | dog
2  | elephant
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

展开后的结果使得每个数组元素都成为了一个独立的行。

需要注意的是,explode 函数只能应用于数组(Array)和 Map 类型的列。

对于其他类型的列,explode 函数无法使用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/942742
推荐阅读
相关标签
  

闽ICP备14008679号