Sqoop导入查询,其中row_numbers之间的ID不起作用

时间:2018-11-12 14:56:54

标签: mysql hdfs sqoop

已经提出/回答了其他问题,但没有一个可以指向下面回答我的问题:

我正在从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 

请问,我在查询中有什么要忽略的吗,谢谢?

1 个答案:

答案 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 \