我正在使用Cloudera Sqoop将数据从Oracle数据库提取到HDFS。一切都很顺利,除了像®和©这样的某些字符,它们正在转换为HDFS中的©。 (但在Oracle中,数据存储没有任何问题)。有什么方法可以将这些字符存储在HDFS中吗?
Sqoop版本:1.3
谢谢, Karthikeya
答案 0 :(得分:1)
您在Oracle数据库中使用哪种格式的字符?由于Hadoop使用UTF-8格式,因此如果数据形式不同,则应将数据转换为Oracle数据库。
答案 1 :(得分:1)
我强烈建议检查HDFS上的实际字节,而不是查看表示。我已经看到太多的情况,数据存储得很好(并且实际上由Sqoop自动转换为UTF8),只有表示/终端仿真器/用于读取数据的其他任何东西都在混乱编码。从HDFS下载文件,只需hexdump -C
即可验证编码是否确实已损坏。