我们可以使用sqoop导出特殊字符吗?

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

我正在尝试使用sqoop export将其中一个表从hive导出到mysql。配置单元表数据包含特殊字符。

我的配置单元“特殊字符”表数据:

1   じゃあまた
2   どうぞ

我的sqoop命令:

sqoop export --verbose --connect jdbc:mysql://xx.xx.xx.xxx/Sampledb --username abc --password xyz --table special_char --direct --driver com.mysql.jdbc.Driver  --export-dir /apps/hive/warehouse/sampledb.db/special_char --fields-terminated-by ' '

使用上述sqoop export命令后,数据以问号(???)的形式存储,而不是以特殊字符存储实际消息。

mysql“特殊字符”表:

id  message
1    ?????
2    ???

有谁能帮我解决这个问题,用特殊字符代替问号(???)。

camsedfj

camsedfj1#

在jdbc url中指定正确的编码和字符集,如下所示:

jdbc:mysql://xx.xx.xx.xxx/Sampledb?useUnicode=true&characterEncoding=UTF-8

sqoop export --verbose --connect jdbc:mysql://xx.xx.xx.xxx/Sampledb?useUnicode=true&characterEncoding=UTF-8 --username abc --password xyz --table special_char --direct --driver com.mysql.jdbc.Driver  --export-dir /apps/hive/warehouse/sampledb.db/special_char --fields-terminated-by ' '

请验证日语字符的字符集编码并使用正确的字符集编码。
参考文献:https://community.hortonworks.com/content/supportkb/198290/native-sqoop-export-from-hdfs-fails-for-unicode-ch.html

相关问题