Hive:重音字符到非重音字符
Hive : accented characters to their non accented counterparts
如何在发送到 hive 的 SELECT
请求中用对应的 ascii 字符替换非 ascii 字符?即删除重音符号(é
、ê
、è
=> e
)并删除其他非字母数字字符 (``)。
我知道我可以使用 regexp_replace()
,但我必须处理每对 accented/non-accented。当然,还有更实用的东西?
看来你想用
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);
}
}
如何在发送到 hive 的 SELECT
请求中用对应的 ascii 字符替换非 ascii 字符?即删除重音符号(é
、ê
、è
=> e
)并删除其他非字母数字字符 (``)。
我知道我可以使用 regexp_replace()
,但我必须处理每对 accented/non-accented。当然,还有更实用的东西?
看来你想用
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);
}
}