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或-m 1进行顺序导入
当我使用split-by时,它忽略了null值,并将其他值导入到蜂巢中。
你能解释原因吗?
谢谢瓦伦
发布于 2016-10-24 17:06:21
所获得的空值问题与拆分无关。
默认情况下,Sqoop将导入空值作为字符串空值。然而,Hive使用字符串\N来表示空值,因此处理NULL (例如is )的谓词将不能正常工作。如果您希望正确地保留空值,您应该附加参数-空字符串和--空字符串,或者--输入-空-字符串和--输入-空-非字符串。由于sqoop在生成的代码中使用这些参数,因此需要正确地将值\N转义到\N:
$ sqoop import ... --null-string '\\N' --null-non-string '\\N'https://stackoverflow.com/questions/40223323
复制相似问题