Hive INSTR函数在具有UTF8字符的字符串上工作不正常。当重音字符是字符串的一部分时,INSTR会为后续字符返回不正确的字符位置。它似乎是计算字节而不是字符。
将重音字符作为字符串的一部分,它返回8
select INSTR("Réservation:", 'a'); returns 8
如果没有重音字符作为字符串的一部分,则返回7
select INSTR("Reservation:", 'a'); returns 7
我可以使用这个或替代功能吗?
答案 0 :(得分:2)
这是我用hive 1.1.0获得的,
hive>select INSTR("Réservation:", 'a');
OK
7
所以Hive没有问题。如果您仍然需要使用INSTR
编写自己的UDF来实现此目的。有关编写UDF的信息,请参阅以下链接