Sqoop 导出到 Oracle-Caused by: java.lang.RuntimeException: Can't parse input data: '\N'

Sqoop Export to Oracle-Caused by: java.lang.RuntimeException: Can't parse input data: '\N'

Sqoop 导出到 Oracle 失败,出现以下异常

原因:java.lang.RuntimeException:无法解析输入数据:'\N'

我在 HDFS 中有空列。

下面是我使用的命令。

 sqoop export --connect jdbc:oracle:thin:@XXXXXXXXXXXXX \
             --username XX \
             --password XXXXX \
             --table XXXXXXXXXXXXXXXXXX\
             --export-dir '/datalake/qa/etl/XXXXXXX/XXXXXXXXXXXX' --input-fields-terminated-by ','  --input-null-string '\N' --input-null-non-string '\N'

我试过 --input-null-string "\\N" --input-null-non-string "\\N" 还是不行。

问题是由文本中的 NUL 字符引起的。

对于 Oracle 数据库,我们不需要为 Null 值提及 --input-null-string,我以不同的方式尝试过,认为这是问题的原因。

我检查了失败的 map 任务的日志文件,并在导致问题的字符串中找到了 NULL 字符。

我在使用配置单元查询导出到 HDFS 目录之前使用 regexp_replace 解决了这个问题 regexp_replace(regexp_replace(rtrim(A.chat_agent_text),',','.'),'\0','.')

问题已解决,sqoop导出成功

观察: 无法解析输入数据:“\N”并不总是与列的 Null 值相关