Hive INSTR函数在具有UTF8字符的字符串上工作不正常

时间:2016-11-09 00:30:01

标签: hadoop hive utf

Hive INSTR函数在具有UTF8字符的字符串上工作不正常。当重音字符是字符串的一部分时,INSTR会为后续字符返回不正确的字符位置。它似乎是计算字节而不是字符。

将重音字符作为字符串的一部分,它返回8

select INSTR("Réservation:", 'a'); returns 8 

如果没有重音字符作为字符串的一部分,则返回7

select INSTR("Reservation:", 'a'); returns 7

我可以使用这个或替代功能吗?

1 个答案:

答案 0 :(得分:2)

这是我用hive 1.1.0获得的,

hive>select INSTR("Réservation:", 'a');
OK
7

所以Hive没有问题。如果您仍然需要使用INSTR编写自己的UDF来实现此目的。有关编写UDF的信息,请参阅以下链接

Click here for UDF