mjjian0 发表于 2017-8-14 19:33:07

往hdfs写数据,映射成hive表后,第一列内容会有乱码

程序里面使用spark streaming 取kafka队列数据往hdfs写,然后建hive表映射这个hdfs目录。
结果看hive表数据,第一列都是会有乱码


我的程序:


也尝试用 fin.write和fin.writeByte,但是写入得数据中文全是乱码。然后就用writeUTF,中文不是乱码,但是第一列内容前面永远都自动加上了乱码

mjjian0 发表于 2017-8-14 20:05:55

解决了,我换了种方式1,我用 fin.write方式写入(因为我第一次写的是有就是用的这种方式fin.write(line.getBytes());,但是写入之前并没有对这个字符串转码,所以写入得是乱码,就放弃了改用writeUTF,但是writeUTF写入,中文是不乱码了,又出现了如本题一样的问题)
2,我尝试着用fin.write写入,并在写入之前对字符串做了转码,fin.write(line.getBytes("gbk"));而不是fin.write(line.getBytes());,然后就得到了中文不是乱码,每行前面也没有自动添加的乱码数据了。

nextuser 发表于 2017-8-14 20:24:21

mjjian0 发表于 2017-8-14 20:05
解决了,我换了种方式1,我用 fin.write方式写入(因为我第一次写的是有就是用的这种方式fin.write(line.ge ...

看样utf还不够彻底,中文需使用gbk
页: [1]
查看完整版本: 往hdfs写数据,映射成hive表后,第一列内容会有乱码