在 Hive 中将单行列拆分为多列
Posted
技术标签:
【中文标题】在 Hive 中将单行列拆分为多列【英文标题】:Split single row columns into multiple columns in Hive 【发布时间】:2017-05-17 07:50:57 【问题描述】:我有一个这样的 Hive 表
ID1 Name1 ID2 Name2 ID3 Name3....
1 ABC 2 MNP 3 XYZ
11 LMP 12 PLL 13 UIP
这个表可能没有。列对(即 ID 和名称)
我需要将上面的表转换成一个只有 2 列 ID 和 Name 的新 Hive 表,如下所示
ID Name
1 ABC
2 MNP
3 XYZ
11 LMP
12 PLL
13 UIP
请建议我如何在 Hive 中实现这一点。
谢谢
【问题讨论】:
【参考方案1】:select explode(map(*)) as (id,name)
from mytable
;
+----+------+
| id | name |
+----+------+
| 1 | ABC |
| 2 | MNP |
| 3 | XYZ |
| 11 | LMP |
| 12 | PLL |
| 13 | UIP |
+----+------+
【讨论】:
我已经更新了问题。该表将重复设置 4 列而不是 2 列。地图不能用于超过 2 列。请提出任何其他解决方案。 这是对原始问题的重大改变。接受答案并打开一个新问题。 谢谢 Dudu 我已经接受了你的回答.. 将发布另一个问题。 请查看(***.com/questions/44039492/…)以上是关于在 Hive 中将单行列拆分为多列的主要内容,如果未能解决你的问题,请参考以下文章