我一度被sqoop困住了。在我的来源,我有一列有一个特殊的字符。但是当我用sqoop拉取数据时,这个特殊字符被改为其他字符。
在我的源oracle表中,我有:-
jan 2005 �DSX�
但是当它将数据Map到配置单元表时,它将特殊字符改为其他字符
jan 2005 �DSXÙ
请建议一些解决方案,以便我得到完全相同的特殊字符,因为它是在源(甲骨文)表。
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条答案
按热度按时间zsbz8rwp1#
如果你看到
jan 2005 �DSX�
这在您的oracle表中,可能您的oracle表编码设置也不正确。我对oracle没有太多经验,因此无法告诉您如何检查,但是您可以向oracle dba检查。我可以告诉你的是,hadoop使用
UTF-8
编码,所以您首先需要将oracle转换为UTF-8
然后导入数据。