编码问题
hive中默认都是utf-8编码,但是有的数据格式不是utf-8编码,展示会出现问题,需要转换。
例:
%e8%bf%99%e4%b8%aa%e8%a3%85%e4%b8%8a%ef%bc%8c%e6%9d%af%e5%ad%90
在hive中需要转换,使用Hive调用Java类
string是需要转换编码的字符串
reflect('java.net.URLDecoder', 'decode', string, "utf-8")
常用编码:
| utf-8 | GBK (gbk) | gb2313 | GB18030 | Unicode |
|---|---|---|---|---|
| 0xA0+区号,0xA0+位号 | \uXXXX |
实体转换
html中的实体字符,暂时还未找到较好的转换函数
可以使用替换函数,全部替换成空格
例:
…•
使用替换函数
regexp_replace(string, '&[a-z0-9]*\;', ' ')
注意
;在hive中比较特殊,需要转义使用,否则会认为语句结束,报错。
\;,\073在一般函数中都可以使用,在正则中仅能使用\;