sqoop导入查询,其中行号之间的id不起作用

thtygnil  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(259)

已经提出/回答了其他问题,但没有人能够回答我下面的问题:
我只是将有限范围的行(例如,“where\u id介于107和307之间”)从mysql表导入hdfs。考虑到mysql查询本身是有效的,我希望查询能够工作,但是我得到了一个mysql语法错误。或者我可以导入使用上限和下限,然后合并文件后,这很长,我不想这样做。
以下是查询:

sqoop import \
--connect jdbc:mysql://localhost/test \
--username=username \
--password=password \
--query 'select * from PURCHASE where purchase_id between 107 and 307 where $CONDITIONS' \
--target-dir /testpurchase \
--split-by purchase_id

请问,查询中有什么我遗漏的吗,谢谢?

nkoocmlb

nkoocmlb1#

我发现有两个模棱两可的 WHERE clauses ,所以最后更改 WHERE $CONDITIONSAND $CONDITIONS 我成功了。

sqoop import \
--connect jdbc:mysql://localhost/test \
--username=username \
--password=password \
--query 'select * from PURCHASE WHERE purchase_id between 107 and 307 AND $CONDITIONS' \
--target-dir /testpurchase \
--split-by purchase_id

边界查询&-表也可以完成这项工作

sqoop import \
--connect jdbc:mysql://localhost/test \
--username=username \
--password=password \
--boundary-query 'Select 107,307 from purchase' \
--table purchase\
--target-dir /testpurchase \

相关问题