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 值相关
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 值相关