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

查看数: 9005 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-8-14 19:33

正文摘要:

程序里面使用spark streaming 取kafka队列数据往hdfs写,然后建hive表映射这个hdfs目录。 结果看hive表数据,第一列都是会有乱码 也尝试用 fin.write和fin.writeByte,但是写入得数据中文全是乱码。然后就 ...

回复

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

看样utf还不够彻底,中文需使用gbk
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());,然后就得到了中文不是乱码,每行前面也没有自动添加的乱码数据了。
关闭

推荐上一条 /2 下一条