Sqoop导出到Oracle - 由以下引起:java.lang.RuntimeException:无法解析输入数据:' \ N'

时间:2015-10-23 16:50:34

标签: sqoop

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"仍然没有运气。

1 个答案:

答案 0 :(得分:0)

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

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

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

我在使用hive查询导出到HDFS目录之前使用regexp_replace解决了这个问题 的 REGEXP_REPLACE(REGEXP_REPLACE(RTRIM(A.chat_agent_text)''''),' \ 0'&#39 ;. &#39)

此问题现已解决,sqoop导出成功

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