hive 如何根据某个字段值转换为多行
可以使用 LATERAL VIEW EXPLODE 函数来实现根据某个字段值转换为多行的操作。具体步骤如下:
- 创建一个包含需要转换的字段的表。
CREATE TABLE table_name (
id INT,
name STRING,
hobbies ARRAY<STRING>
);
- 插入数据。
INSERT INTO table_name VALUES
(1, 'Tom', ARRAY('reading', 'swimming')),
(2, 'Jerry', ARRAY('playing', 'running', 'climbing')),
(3, 'Lucy', ARRAY('dancing'));
- 使用 LATERAL VIEW EXPLODE 函数将 hobbies 字段转换为多行。
SELECT id, name, hobby
FROM table_name
LATERAL VIEW EXPLODE(hobbies) exploded_hobbies AS hobby;
结果如下:
id name hobby
1 Tom reading
1 Tom swimming
2 Jerry playing
2 Jerry running
2 Jerry climbing
3 Lucy dancing
可以看到,通过使用 LATERAL VIEW EXPLODE 函数,hobbies 字段被转换为了多行,并且每个值都与原表中的其他字段对应
原文地址: https://www.cveoy.top/t/topic/cpyb 著作权归作者所有。请勿转载和采集!