pull特殊字符的sqoop实现

m3eecexj  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(571)

我一度被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
zsbz8rwp

zsbz8rwp1#

如果你看到 jan 2005 �DSX� 这在您的oracle表中,可能您的oracle表编码设置也不正确。我对oracle没有太多经验,因此无法告诉您如何检查,但是您可以向oracle dba检查。
我可以告诉你的是,hadoop使用 UTF-8 编码,所以您首先需要将oracle转换为 UTF-8 然后导入数据。

相关问题