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

时间:2018-09-25 10:06:50

标签: mysql hive sqoop

我正在尝试使用sqoop导出将其中一个表从蜂巢导出到MySQL。蜂巢表数据包含特殊字符。

我的配置单元“ special_char”表数据:

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导出命令后,数据以问号(???)的形式存储,而不是带有特殊字符的实际消息。

MySql“ special_char”表:

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

在存储特殊字符而不是问号(???)时,有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

在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