編碼問題
hive中默認(rèn)都是utf-8編碼膳帕,但是有的數(shù)據(jù)格式不是utf-8編碼粘捎,展示會出現(xiàn)問題,需要轉(zhuǎn)換备闲。
例:
%e8%bf%99%e4%b8%aa%e8%a3%85%e4%b8%8a%ef%bc%8c%e6%9d%af%e5%ad%90
在hive中需要轉(zhuǎn)換晌端,使用Hive調(diào)用Java類
string
是需要轉(zhuǎn)換編碼的字符串
reflect('java.net.URLDecoder', 'decode', string, "utf-8")
常用編碼:
utf-8 | GBK (gbk) | gb2313 | GB18030 | Unicode |
---|---|---|---|---|
0xA0+區(qū)號,0xA0+位號 | \uXXXX |
實體轉(zhuǎn)換
html中的實體字符恬砂,暫時還未找到較好的轉(zhuǎn)換函數(shù)
可以使用替換函數(shù)咧纠,全部替換成空格
例:
…•
使用替換函數(shù)
regexp_replace(string, '&[a-z0-9]*\;', ' ')
注意
;
在hive中比較特殊,需要轉(zhuǎn)義使用泻骤,否則會認(rèn)為語句結(jié)束漆羔,報錯梧奢。
\;
,\073
在一般函數(shù)中都可以使用,在正則中僅能使用\;