合并 hive 中的列
Posted
技术标签:
【中文标题】合并 hive 中的列【英文标题】:Merge columns in hive 【发布时间】:2019-06-11 13:06:05 【问题描述】:我是蜂巢新手。请帮助解决我的以下问题。
我在 hive 中有下表,其中一列的数据为 |作为分隔符。
C1
1|2|3|4|5|6
7||9|10|11|12
以下是基于分隔符的预期输出,我想将其拆分为列。
C1 C2 C3 C4 C5 C6
1 2 3 4 5 6
7 9 10 11 12
我尝试过使用 locate 和 substr 函数,最后得到了复杂的 sql 查询。你们能以一种简单的方式帮助我吗?
谢谢!
【问题讨论】:
列数是固定的吗? @VamsiPrabhala 是的,列数是固定的,连接字符串 (1|2|3|4|5|6) 也将有六列的数据要拆分。希望你明白了。 【参考方案1】:使用split
,它返回一个包含值的array
,可以从中选择单个元素作为列。
select split(c1,'\\|')[0] as c1
,split(c1,'\\|')[1] as c2
,split(c1,'\\|')[2] as c3
,split(c1,'\\|')[3] as c4
,split(c1,'\\|')[4] as c5
,split(c1,'\\|')[5] as c6
from tbl
【讨论】:
以上是关于合并 hive 中的列的主要内容,如果未能解决你的问题,请参考以下文章
将来自一个数据框的值合并到 Pandas 中的新列中[重复]