如何编写查询以将基于'india|koria'
的{{1}}字符串拆分为'|'
和india
我试过这个
korea
但是我收到了错误:
编译语句时出现错误:失败:parseexceptio:无法识别' in'附近的输入''印度|韩国'' ')'在表达式规范
中
任何人的帮助?提前谢谢。
注意:我在hive编辑器中运行此查询。
答案 0 :(得分:0)
我认为最新版本的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
答案 1 :(得分:0)
在配置单元中尝试拆分UDF:
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