我该如何在Hive表中将数据字符串分割成3个单独列?
示例输入数据:116:151:1
。按gid,sid,rid
进行拆分。
所需输出:
gid sid rid
116 151 1
使用split()
函数。您可以在文档中阅读有关它(以及所有其他Hive函数)的信息。
查询:
select split("116:151:1", '\\:')[0] as gid
, split("116:151:1", '\\:')[1] as sid
, split("116:151:1", '\\:')[2] as rid
from database.table
输出:
gid sid rid
116 151 1
你需要将“116:151:1”替换为你表格中该列的名称。SELECT t.vec[0] AS gid, t.vec[1] AS sid, t.vec[2] AS rid
FROM (SELECT split("116:151:1", "[:]") AS vec) AS t;
在Hive中生成此输出:
+------+------+------+--+
| gid | sid | rid |
+------+------+------+--+
| 116 | 151 | 1 |
+------+------+------+--+
你好!