字符集转换问题

查看数: 9808 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-12-3 11:01

正文摘要:

各位大神想请教一个问题,就是现在oracle的字符集是US7ASCII,hive的元数据编码为utf,现在将数据使用sqoop导入到hive后中文乱码,我想请教一下,导入后数据的字符集就改变成了utf,还是说只是因为hive和oracle的里 ...

回复

credit 发表于 2015-12-3 16:13:54
额,懂了做一个convert的嵌套使用,我试试,感谢
arsenduan 发表于 2015-12-3 16:11:50
credit 发表于 2015-12-3 15:35
还是不太懂您说的第一次转换,能不能加一下您的qq

convert(rd_yj,'ZHS16GBK','US7ASCII')我是想你在这个基础上已经转换成GBK了,然后在转换一次,变成UTF-8
credit 发表于 2015-12-3 15:35:52
arsenduan 发表于 2015-12-3 14:51
sqoop import --connect jdbc:oracle:thin:@ip:1521:dname --username x --password x --query "select c ...

还是不太懂您说的第一次转换,能不能加一下您的qq
arsenduan 发表于 2015-12-3 14:51:41
credit 发表于 2015-12-3 13:25
您说的是不是这样:sqoop import --connect jdbc:oracle:thin:@ip:1521:dname --username x --password x ...

sqoop import --connect jdbc:oracle:thin:@ip:1521:dname --username x --password x --query "select convert(rd_yj,'ZHS16GBK','US7ASCII') from dj_fzcgl where \$CONDITIONS"  -m 1 --target-dir /user/hive/warehouse/sichuan.db/dj_fzcgl_test --hive-table dj_fzcgl_test --hive-import --as-parquetfile
你的GBK是什么形式:
下面形式?不需要转换,也不会出现乱码
sqoop import --connect jdbc:oracle:thin:@ip:1521:dname --username x --password x --query "select rd_yj from dj_fzcgl where \$CONDITIONS"  -m 1 --target-dir /user/hive/warehouse/sichuan.db/dj_fzcgl_test --hive-table dj_fzcgl_test --hive-import --as-parquetfile


credit 发表于 2015-12-3 13:25:42
arsenduan 发表于 2015-12-3 12:21
下面改成GBK,然后在按照你的sqoop方式来操作
convert(nsrdzdah,'GBK','US7ASCII')
如果还不明白

您说的是不是这样:sqoop import --connect jdbc:oracle:thin:@ip:1521:dname --username x --password x --query "select convert(rd_yj,'ZHS16GBK','US7ASCII') from dj_fzcgl where \$CONDITIONS"  -m 1 --target-dir /user/hive/warehouse/sichuan.db/dj_fzcgl_test --hive-table dj_fzcgl_test --hive-import --as-parquetfile
已经试过了,还是乱码啊,
arsenduan 发表于 2015-12-3 12:21:08
credit 发表于 2015-12-3 12:18
您的意思是先在oracle里面做一下转码,然后在sqoop?,第一步在什么时候操作,您有例子,或者说的详细点 ...

下面改成GBK,然后在按照你的sqoop方式来操作
convert(nsrdzdah,'GBK','US7ASCII')
如果还不明白
你把你GBK的sqoop语句贴出来。
credit 发表于 2015-12-3 12:18:27
arsenduan 发表于 2015-12-3 11:40
导入的时候,先改成GBK,然后在按照sqoop的方式导入,也就是说试试进行两次编码转换

您的意思是先在oracle里面做一下转码,然后在sqoop?,第一步在什么时候操作,您有例子,或者说的详细点,谢谢了
arsenduan 发表于 2015-12-3 11:40:46
导入的时候,先改成GBK,然后在按照sqoop的方式导入,也就是说试试进行两次编码转换
关闭

推荐上一条 /2 下一条