蜂巢:重音字符与非重音符号

时间:2017-08-04 15:32:40

标签: hive hiveql

如何在发送到配置单元的SELECT请求中将非ascii字符替换为ascii对应字符?这已删除重音(éêè => e)并删除了其他非字母数字字符(``)。

我知道我可以使用regexp_replace(),但我必须处理每个有重音符号/非重音符号。当然,还有更实际的东西吗?

1 个答案:

答案 0 :(得分:1)

您似乎想要使用

String subjectString = "öäü";
subjectString = Normalizer.normalize(subjectString, Normalizer.Form.NFD);

如上所述 Replace non ASCII character from string

我已尝试使用reflect但由于Normalizer.Form枚举参数无法使其正常工作。

所以,似乎你必须定义一行UDF:

public class NormalizerUDF extends UDF {
  public String evaluate(String in) {
        return Normalizer.normalize(in, Normalizer.Form.NFD);
  }
}