Oracle sqoop未导入数据类型varchar2

Oracle sqoop未导入数据类型varchar2,oracle,hadoop,hdfs,sqoop,varchar2,Oracle,Hadoop,Hdfs,Sqoop,Varchar2,sqoop未将数据类型varchar2导入hadoop 我在oracle数据库中有一个表,我想将数据导入hdfs。 我试图用sqoop实现这一点,但varchar2列并没有被导入。 我是说这些数据没有到达hdfs文件。 我的sqoop命令 sqoop import -D mapred.job.name='default oraoop' --driver oracle.jdbc.driver.OracleDriver --connect "jdbc:oracle:thin:MyIp:MyServ

sqoop未将数据类型varchar2导入hadoop 我在oracle数据库中有一个表,我想将数据导入hdfs。 我试图用sqoop实现这一点,但varchar2列并没有被导入。 我是说这些数据没有到达hdfs文件。 我的sqoop命令

sqoop import -D mapred.job.name='default oraoop'  --driver oracle.jdbc.driver.OracleDriver --connect "jdbc:oracle:thin:MyIp:MyServiceName" --username "XXXX" --password "XX" --target-dir "My_dir" --query 'select * from MyTable where $CONDITIONS' --split-by "coulmn"  --boundary-query "SELECT min(splitColumn),max(SplitCoulmn)  FROM DUAL" --num-mappers 30

可能是sqoop无法识别匹配的java类型
VARCHAR2
,因此请尝试使用-
-map列java

假设A列是
VARCHAR2
类型,那么您的sqoop命令是

sqoop import-D mapred.job.name='default oraoop'-驱动程序oracle.jdbc.driver.OracleDriver--connect“jdbc:oracle:thin:MyIp:MyServiceName”--用户名“XXXX”--密码“XX”--目标目录“My_dir”--查询“select*from MyTable where$CONDITIONS”--映射列java a=String--按“coulmn”拆分--边界查询“select min”(splitColumn),来自双“-num映射器的最大值(SplitCoulmn)30


让我知道这是否有效。

您可以尝试降级ojdbc,而不是使用更高的ojdbc“ojdbc6或ojdbc7”使用“ojdbc14”,这为我解决了问题,但为了避免遇到一些未找到编码类的异常,请在从orale9i导入数据时删除或重命名“ori18n.jar”


您可以在“$HADOOP\u CLASSPATH”和“$SQOOP\u HOME”中找到这些jar文件的路径

我尝试了它,但出现了此错误16/11/09 04:20:12错误工具。ImportTool:导入失败:Java类型字符串的任何ResultSet方法在
字符串中应为大写。
中。我已经编辑了该命令,您现在可以尝试吗?我尝试了,但仍然没有导入varchar2列,因此您将获得空值?您还可以尝试转储到hive和sp中吗指定
--映射列蜂巢
,并让我知道。