gpt4 book ai didi

hadoop - hive - Split 函数中的正则表达式不提供输出

转载 作者:可可西里 更新时间:2023-11-01 16:55:59 25 4
gpt4 key购买 nike

输入:

[a,b], [c,d], [e,f]
select split(col,'\\,') from table_1;

通过上面的查询,我可以在每个逗号上进行拆分。 (大括号内外)

我只需要在大括号外的逗号处进行拆分。所以我按如下方式更改了查询。

select split(col,',(?=\[)') from table_1;

据我所知,我使用的正则表达式是正确的,但无法获得输出。

需要的输出:

"[a,b]","[c,d]","[e,f]" 

最佳答案

看起来你的数据之间有一个空格,所以试试这个正则表达式:

,\\s(?=\\[)

编辑:

所以,我不确定你的列中是否有空格,所以这里是两者兼而有之:

情况一:列中没有空格

hive> describe a;
OK
t string

hive> select * from a;
OK
[a,b],[c,d],[e,f]
Time taken: 0.089 seconds, Fetched: 1 row(s)

hive> select split(t, ',(?=\\[)') from a;
OK
["[a,b]","[c,d]","[e,f]"]
Time taken: 0.081 seconds, Fetched: 1 row(s)

情况2:列中有空格

hive> describe b;
OK
t string

hive> select * from b;
OK
[a,b], [c,d], [e,f]
Time taken: 0.084 seconds, Fetched: 1 row(s)

hive> select split(t, ',\\s(?=\\[)') from b;
OK
["[a,b]","[c,d]","[e,f]"]
Time taken: 0.082 seconds, Fetched: 1 row(s)

关于hadoop - hive - Split 函数中的正则表达式不提供输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29949160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com