基于配置单元编辑器中的分隔符拆分列

xxe27gdn  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(358)

如何编写查询来拆分字符串,如 'india|koria' 基于 '|' 进入 india 以及 korea 我试过这个

select
    SUBSTRING('India|Korea', 1, position('|' in 'India|Korea') - 1) as first,
    SUBSTRING('India|Korea', position(',' in 'India|Korea') + 1)as second

但我有个错误:
编译语句时出错:失败:parseException:无法识别表达式规范中“in''''india | korea''')附近的输入
有人帮忙吗?提前谢谢。
注意:我正在配置单元编辑器中运行此查询。

busg9geu

busg9geu1#

我认为最新版本的hive支持 substring_index() . 不过,按照你的逻辑,不要用 position() ,使用 instr() :

select substring('India|Korea', 1, instr('India|Korea', '|') - 1) as first,
       substring('India|Korea', instr('India|Korea', '|') + 1) as second
rt4zxlrg

rt4zxlrg2#

尝试在配置单元中拆分自定义项:

select split('India|Korea', '\\|')[0], split('India|Korea', '\\|')[1];
+--------+--------+--+
|  _c0   |  _c1   |
+--------+--------+--+
| India  | Korea  |
+--------+--------+--+
1 row selected (0.136 seconds)

另请参见:https://cwiki.apache.org/confluence/display/hive/languagemanual+udf

相关问题