Fayson的github: https://github.com/fayson/cdhproject
推荐关注微信公众号:“Hadoop实操”,ID:gh_c4c535955d0f
1 问题重现
测试环境:
1.RedHat7.2
2.CDH6.2.0
3.使用root进行操作
1.在Hive中创建一个表,并导入数据如下

2.对s2字段进行排序
select * from hanzi order by s2;
在Hive中:

在Impala中:

由上面两张图可以看出,在Hive和Impala中排序都失败了,没有按照期望中的中文对应的拼音进行排序。
2 问题解决
1.想要实现对中文字段的排序,需要将中文字段转换成拼音,然后在Hive、Impala中对拼音进行排序即可。因此可以使用UDF在Java中写一个汉字转拼音的程序,然后在Hive、Impala中使用,代码如下:
public String evaluate(String Chin

本文介绍了在Hive和Impala中如何通过自定义UDF函数实现中文字段按拼音排序的问题。在面对中文排序失败的情况时,作者提供了使用Java编写汉字转拼音程序的解决方案,将转换后的拼音用于排序,最后展示了成功排序的示例。
最低0.47元/天 解锁文章
883

被折叠的 条评论
为什么被折叠?



