Sqoop 导入命令出错
Error with Sqoop Import Command
我正在尝试使用 Sqoop 将 table 从 MySQL 中的数据库导入到 HDFS。 table 包含字段 col1、col2、col3、col4 和 col5。其中有很多 NULL 值。具有 NULL 值的行数为 4265550,没有 NULL 值的行数为 1421851。我想在将 table 导入 HDFS 时阻止 NULL 值。以下是我的代码,
sqoop import --connect "jdbc:mysql://quickstart.cloudera:3306/database" --username root --password cloudera --query 'SELECT * FROM table_export WHERE ((col1 IS NOT NULL) OR (col2 IS NOT NULL) OR (col3 IS NOT NULL) OR (col4 IS NOT NULL) OR (col5 IS NOT NULL) AND $CONDITIONS)' --target-dir /user/cloudera/input/table_export --direct -m 1
但是当我 运行 这个查询时,也导入了 NULL 值。我哪里做错了?
如果我需要使用“--where条件”,
案例 1:
--where (col1 IS NOT NULL) OR (col2 IS NOT NULL) OR (col3 IS NOT NULL) OR (col4 IS NOT NULL) OR (col5 IS NOT NULL)
案例2:
--where (col1 != NULL) OR (col2 != NULL) OR (col3 != NULL) OR (col4 != NULL) OR (col5 != NULL)
我应该使用哪一个?
请帮帮我。提前致谢
你应该使用 Case1。
--where "(col1 IS NOT NULL) OR (col2 IS NOT NULL) OR (col3 IS NOT NULL) OR (col4 IS NOT NULL) OR (col5 IS NOT NULL)"
因为(col1 != NULL)
的结果未定义。 NULL
不能等于或不等于另一个值或 NULL
。另请参阅此答案:
你可以使用Case1。
如果您不想在输出中出现任何空值,请在您粘贴的查询中将 OR 更改为 AND。
我正在尝试使用 Sqoop 将 table 从 MySQL 中的数据库导入到 HDFS。 table 包含字段 col1、col2、col3、col4 和 col5。其中有很多 NULL 值。具有 NULL 值的行数为 4265550,没有 NULL 值的行数为 1421851。我想在将 table 导入 HDFS 时阻止 NULL 值。以下是我的代码,
sqoop import --connect "jdbc:mysql://quickstart.cloudera:3306/database" --username root --password cloudera --query 'SELECT * FROM table_export WHERE ((col1 IS NOT NULL) OR (col2 IS NOT NULL) OR (col3 IS NOT NULL) OR (col4 IS NOT NULL) OR (col5 IS NOT NULL) AND $CONDITIONS)' --target-dir /user/cloudera/input/table_export --direct -m 1
但是当我 运行 这个查询时,也导入了 NULL 值。我哪里做错了?
如果我需要使用“--where条件”,
案例 1:
--where (col1 IS NOT NULL) OR (col2 IS NOT NULL) OR (col3 IS NOT NULL) OR (col4 IS NOT NULL) OR (col5 IS NOT NULL)
案例2:
--where (col1 != NULL) OR (col2 != NULL) OR (col3 != NULL) OR (col4 != NULL) OR (col5 != NULL)
我应该使用哪一个? 请帮帮我。提前致谢
你应该使用 Case1。
--where "(col1 IS NOT NULL) OR (col2 IS NOT NULL) OR (col3 IS NOT NULL) OR (col4 IS NOT NULL) OR (col5 IS NOT NULL)"
因为(col1 != NULL)
的结果未定义。 NULL
不能等于或不等于另一个值或 NULL
。另请参阅此答案:
你可以使用Case1。
如果您不想在输出中出现任何空值,请在您粘贴的查询中将 OR 更改为 AND。