Hadoop/Hive - 将单行拆分为多行

Posted

技术标签:

【中文标题】Hadoop/Hive - 将单行拆分为多行【英文标题】:Hadoop/Hive - Split a single row into multiple rows 【发布时间】:2012-08-28 13:27:30 【问题描述】:

我正在尝试找到一种方法,根据分隔列将 Hive 中的一行拆分为多行。例如获取结果集:

ID1  Subs
1     1, 2
2     2, 3

然后返回:

ID1  Subs
1     1
1     2
2     2
2     3

我在http://osdir.com/ml/hive-user-hadoop-apache/2009-09/msg00092.html 找到了一些路标,但是我无法提供足够的细节来指出解决方案的方向,而且我不知道如何设置转换函数以返回会拆分行的对象。

【问题讨论】:

【参考方案1】:

试试这个措辞

SELECT ID1, Sub
FROM tableName lateral view explode(split(Subs,',')) Subs AS Sub  

【讨论】:

【参考方案2】:
SELECT ID1, new_Subs_clmn
FROM tableName lateral view explode(split(Subs,',')) Subs AS new_Sub_clmn;

我最初对使用的名称感到困惑,分享上述查询认为这会有所帮助。

【讨论】:

以上是关于Hadoop/Hive - 将单行拆分为多行的主要内容,如果未能解决你的问题,请参考以下文章

Oracle - 将单行拆分为多行

SQL中如何将单行数据拆分成多行?

如何根据一个字段是不是包含oracle sql中的逗号分隔字符串将单行拆分为多行?

使用Python将单行的文本拆分为CSV文件中同一列的多行

使用 UNIX 命令行工具将 JSON 拆分为多行

Mysql单行字段拆分多行