比方说,我在配置单元中有一个字符串数组,例如:
hive> select array from my_table;
["\"string1\"","\"string2_component_a\",\"string2_component_b\"","\"string3_component_a\",\"string3_component_b\",\"string3_component_c\""]
如您所见,有以下三个字符串:
"string1"
"string2_component_a","string2_component_b"
"string3_component_a","string3_component_b","string3_component_c"
我想要的是用每个字符串中的最后一个逗号分割每个元素。因此,生成的数组应包含以下5个组件:
"string1"
"string2_component_a"
"string2_component_b"
"string3_component_a","string3_component_b"
"string3_component_c"
有没有一种方法可以在Hive中实现这一点?
2条答案
按热度按时间s1ag04yj1#
一行使用
String.split(String reges,int limit)
ApacheCommonsStringUtils.countMatches
```yourString.split(",", StringUtils.countMatches(yourString, ".") - 1);
yvfmudvl2#
还要注意谷歌Guava图书馆。事实上,拆分器是如此强大https://github.com/google/guava/wiki/stringsexplained#splitter