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

使用 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 函数无法使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值