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"
仍然没有运气。
答案 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'并不总是与列的空值相关