[Hive] explode

[Hive] explode_第1张图片

在 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'));

使用 explode 函数展开数组列:

SELECT id, exploded_value
FROM my_table
LATERAL VIEW explode(values) exploded_table AS exploded_value;

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

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

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

id | exploded_value
---+----------------
1  | apple
1  | banana
1  | orange
2  | cat
2  | dog
2  | elephant

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

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

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

你可能感兴趣的:(hive,hadoop,数据仓库)