根据配置单元编辑器中的分隔符拆分列

时间:2016-04-06 10:58:10

标签: hive

如何编写查询以将基于'india|koria'的{​​{1}}字符串拆分为'|'india

我试过这个

korea

但是我收到了错误:

  编译语句时出现

错误:失败:parseexceptio:无法识别' in'附近的输入''印度|韩国'' ')'在表达式规范

任何人的帮助?提前谢谢。

注意:我在hive编辑器中运行此查询。

2 个答案:

答案 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