已经提出/回答了其他问题,但没有一个可以指向下面回答我的问题:
我正在从MySQL表中将有限范围的行(例如,“ _ ID在107和307之间”导入)到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
请问,我在查询中有什么要忽略的吗,谢谢?
答案 0 :(得分:0)
我发现有两个模棱两可的WHERE clauses
,因此将最后一个WHERE $CONDITIONS
更改为AND $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
--boundary-query和--table也可以完成工作
sqoop import \
--connect jdbc:mysql://localhost/test \
--username=username \
--password=password \
--boundary-query 'Select 107,307 from purchase' \
--table purchase\
--target-dir /testpurchase \