我尝试使用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
运行该命令之后,理想的输出应该理想地是前3行,其Department_ids为2,3和4,但应导入所有行。谁能解释一下?
最佳答案
Sqoop不知道WHERE标志。
将查询更改为
--query "select * from departments where \$CONDITIONS \
department_id < 5 \
AND \$CONDITIONS" \
并删除线
--where "department_id < 5" \
该查询应该工作正常。
关于mysql - Sqoop导入 “--where”标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35916332/