使用Sqoop拉特殊字符

时间:2018-12-20 12:53:12

标签: oracle sqoop

我陷入了僵局。 在我的资料中,我有一栏包含一个特殊字符。但是,当我使用sqoop获取数据时,特殊字符将更改为其他字符。

在我的源oracle表中,我有:-

jan 2005 �DSX�

但是当将数据压缩到配置单元表时,它将特殊字符更改为其他字符

jan 2005 �DSXÙ

请提出一些解决方案,以便获得与源(Oracle)表中完全相同的特殊字符。

sqoop import \ 
--connect "jdbc:oracle:thin:@source connection details" \ 
--connection-manager org.apache.sqoop.manager.OracleManager \
--username abc \
--password xyz \
--fields-terminated-by '\001' \
--null-string '' \
--null-non-string '' \ 
--query "select column_name from wxy.ztable where \$CONDITIONS " \ 
--target-dir "db/dump/dir" \ 
--split-by "col1" \
-m 1

1 个答案:

答案 0 :(得分:0)

如果您在oracle表中看到jan 2005 �DSX�,则您对oracle表的编码可能也未正确设置。我在oracle方面经验不足,因此无法告诉您如何进行检查,但是您可以使用oracle DBA进行检查。

我可以告诉你的是,Hadoop使用UTF-8编码,因此您首先需要将oracle转换为UTF-8,然后导入数据。