Sqoop Import" - 其中"旗

时间:2016-03-10 12:18:46

标签: mysql hadoop sqoop

我尝试使用sqoop --where标志将MySQL表中的特定行导入HDFS,但结果并不像预期的那样。

命令:

sqoop import \
  --connect "jdbc:mysql://XXXX.YYYY/XXXX/retail_db" \
  --username XXXX \
  --password XXXX \
  --query "select * from departments where \$CONDITIONS \
  --where "department_id < 5" \
  --target-dir /XXX/YYY/departments \
  --split-by department_id

MySQL表格行

department_id  department_name
-------------  ---------------
2              Fitness
3              Footwear
4              Apparel
5              Golf
6              Outdoors
7              Fanshop
8000           Test

运行命令后,理想情况下,预期输出应该是具有department_ids 2,3和4的前3行,而是导入所有行。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

Sqoop不知道WHERE标志。

将您的查询更改为

  --query "select * from departments where \$CONDITIONS \
        department_id < 5 \
        AND \$CONDITIONS" \

并删除该行

--where "department_id < 5" \

查询应该可以正常工作。