hive:重音字符与非重音字符对应

yzuktlbb  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(335)

如何将非ascii字符替换为 SELECT 请求已发送到配置单元?那就是去掉口音( é , ê , è => e )并删除其他非字母数字字符(``)。
我知道我可以用 regexp_replace() 但我得处理好每一对有口音或没有口音的人。当然,还有更实用的吗?

p3rjfoxz

p3rjfoxz1#

看来你想用

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

如中所述,从字符串中替换非ascii字符
我尝试过使用反射,但由于 Normalizer.Form 枚举参数。
因此,似乎必须定义一行自定义项:

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

相关问题