sqoop import –connect “jdbc:mysql://quickstart.cloudera:3306/retail_db” \
–username=retail_dba –password=cloudera –table export1 –hive-import \
–hive-table export_3 –create-hive-table –fields-terminated-by “|” \
–lines-terminated-by “\n” –null-string nvl –null-non-string -2 –outdir java_files
如果我使用上述命令,则会出现错误
使用split by或-m 1进行顺序导入
当我使用split-by
时,它忽略了null
值并将其他值导入到配置单元
你能解释一下原因吗?
由于 VARUN
答案 0 :(得分:0)
您获得的NULL值问题与拆分无关。
默认情况下,Sqoop会将NULL值导入为字符串null。然而,Hive使用字符串\ N来表示NULL值,因此谓词处理NULL(如IS NULL)将无法正常工作。你应该在导入作业的情况下附加参数--null-string和--null-non-string,或者如果你希望在导出作业的情况下附加--input-null-non-string正确保留NULL值。因为sqoop在生成的代码中使用这些参数,所以需要正确地将值\ N转义为\ N:
$ sqoop import ... --null-string '\\N' --null-non-string '\\N'