Sqoop version: 1.4.6

I am trying to export Avro data generated by pig into Oracle using Sqoop 1.4.6 
with Oraoop connector.  The oracle table has 2 columns that are designated as 
“NUMBER” columns. The columns are saved as int in Pig and mapped to Integer in 
sqoop.  This command works if I disable Oraoop but I need it enabled for 
desired functionality.  Config and error are below.


   <action name="SqoopDeidOraoop">
        <sqoop xmlns="uri:oozie:sqoop-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <job-xml>sqoop-common.xml</job-xml>
            <configuration>
                <property>
                    
<name>oozie.launcher.mapreduce.task.classpath.user.precedence</name>
                    <value>true</value>
                </property>
                <property>
                    <name>java.security.egd</name>
                    <value>file:/dev/../dev/urandom</value>
                </property>
                <property>
                    <name>oraoop.oracle.append.values.hint.usage</name>
                    <value>ON</value>
                </property>
                <property>
                    <name>oraoop.disabled</name>
                    <value>false</value>
                </property>
            </configuration>
            <arg>export</arg>
            <arg>--connect</arg>
            <arg>(connection)</arg>
            <arg>--username</arg>
            <arg>(user)</arg>
            <arg>--password</arg>
            <arg>(password)</arg>
            <arg>--map-column-java</arg>
            <arg>CLIENT_DS_ID=Integer,SEQ=Integer</arg>
            <arg>--direct</arg>
            <arg>--num-mappers</arg>
            <arg>2</arg>
            <arg>--table</arg>
            <arg>TEST_TABLE</arg>
            <arg>--export-dir</arg>
            <arg>(dir)</arg>
            <arg>--verbose</arg>
        </sqoop>
        <ok to="end"/>
        <error to="kill"/>
    </action>

The error:


java.io.IOException: java.sql.SQLException: java.lang.ClassCastException: 
java.lang.Integer cannot be cast to java.math.BigDecimal
at 
org.apache.sqoop.mapreduce.AsyncSqlRecordWriter.write(AsyncSqlRecordWriter.java:220)
at 
org.apache.sqoop.manager.oracle.OraOopOutputFormatBase$OraOopDBRecordWriterBase.write(OraOopOutputFormatBase.java:564)
at 
org.apache.sqoop.manager.oracle.OraOopOutputFormatInsert$OraOopDBRecordWriterInsert.write(OraOopOutputFormatInsert.java:107)
at 
org.apache.sqoop.manager.oracle.OraOopOutputFormatBase$OraOopDBRecordWriterBase.write(OraOopOutputFormatBase.java:200)
at 
org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:558)
at 
org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:85)
at 
org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.write(WrappedMapper.java:106)
at org.apache.sqoop.mapreduce.AvroExportMapper.map(AvroExportMapper.java:36)
at org.apache.sqoop.mapreduce.AvroExportMapper.map(AvroExportMappe

Reply via email to