Ошибка слияния Sqoop для "\ N" - PullRequest
0 голосов
/ 18 октября 2019

Привет! Я пытаюсь выполнить простой импорт после слияния sqoop, импорт выполнен успешно, и нулевые значения обрабатываются как --null-string '\ N' --null-non-string '\ N'. Во время слияния у меня ошибка ниже

Error: java.lang.RuntimeException: Can't parse input data: '\N'
        at com.bt.dss.bigdata.geohub.codegen.Transmedia.__loadFromFields(Transmedia.java:2757)
        at com.bt.dss.bigdata.geohub.codegen.Transmedia.parse(Transmedia.java:2455)
        at org.apache.sqoop.mapreduce.MergeTextMapper.map(MergeTextMapper.java:53)
        at org.apache.sqoop.mapreduce.MergeTextMapper.map(MergeTextMapper.java:34)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:793)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1924)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
    Caused by: java.lang.NumberFormatException
        at java.math.BigDecimal.<init>(BigDecimal.java:470)
        at java.math.BigDecimal.<init>(BigDecimal.java:739)
        at com.bt.dss.bigdata.geohub.codegen.Transmedia.__loadFromFields(Transmedia.java:2709)
        ... 11 more

Код выглядит следующим образом:

    <action name="SQOOP_MERGE_GEOHUB_TRANSMEDIA">
            <sqoop xmlns="uri:oozie:sqoop-action:0.2">
                <job-tracker>${jobTracker}</job-tracker>
                <name-node>${nameNode}</name-node>
                <arg>merge</arg>
                <arg>-Dmapred.child.java.opts=-Xmx4096m</arg>
                <arg>-Dmapred.reduce.tasks=2</arg>
                <arg>-Dmapred.output.compress=true</arg>
                <arg>-Dmapred.output.compression.codec=org.apache.hadoop.io.compress.BZip2Codec</arg>
                <arg>--new-data</arg>
                <arg>/user/${queueName}/landing/staging/${geohub_transmedia_table}/${PERIOD_DATA_DATE}</arg>
                <arg>--onto</arg>
                <arg>/user/${queueName}/landing/intermediate/${geohub_transmedia_table}</arg>
                <arg>--target-dir</arg>
                <arg>/user/${queueName}/landing/intermediate/${geohub_transmedia_table}_merged</arg>
                <arg>--jar-file</arg>
                <arg>${geohub_jar_file}</arg>
                <arg>--class-name</arg>
                <arg>com.bt.dss.bigdata.geohub.codegen.Transmedia</arg>
                <arg>--merge-key</arg>
                <arg>OBJECTID</arg>
                <file>../${conf_location}/${geohub_jar_file}#${geohub_jar_file}</file>
                <file>../${conf_location}/${ojdbc_jar_file}#${ojdbc_jar_file}</file>
            </sqoop>
<ok to="GEOHUB_REMOVE_DELETED_TRANSMEDIA" />
...