分享

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

mjjian0 发表于 2017-8-14 19:33:07 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 2 8423
程序里面使用spark streaming 取kafka队列数据往hdfs写,然后建hive表映射这个hdfs目录。
结果看hive表数据,第一列都是会有乱码
6K]@QUW5{C$KTM@(C3G_4.png

我的程序:
_KAZ3[L}1ASCUL4}@ZFS3CF.png

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

已有(2)人评论

跳转到指定楼层
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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条