【问题标题】:Merge columns in hive合并 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) 也将有六列的数据要拆分。希望你明白了。

标签: hadoop hive hiveql


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2017-08-03
    • 1970-01-01
    • 2023-03-06
    • 2018-12-28
    • 2018-11-07
    • 1970-01-01
    相关资源
    最近更新 更多