我只做m=1
,这意味着这将迫使非平行导入,对吧?
我的表有500000行,我只想在免费查询中使用where条件导入一部分,这是我的命令:
sqoop import --connect jdbc:mysql://localhost/employees --username root -P --query 'select emp_no, title from titles where "emp_no < 10020 AND \$CONDITIONS"' --target-dir /title_set --m 1;
当我检查结果时,它显示为空但有一个_SUCCESS文件:
我的导入脚本出了什么问题?
答案 0 :(得分:0)
使用sqoop import编写查询有两种方法,请按以下方式更新查询。
1)在单引号中包含查询。
'select emp_no, title from titles where emp_no < 10020 AND $CONDITIONS
“
2)用双引号括起查询。
"select emp_no, title from titles where emp_no < 10020 AND \$CONDITIONS"
以下内容来自Sqoop关于此的文档。
如果要发出用双引号(“)包装的查询,则必须使用\ $ CONDITIONS而不是$ CONDITIONS来禁止shell将其视为shell变量。例如,双引号查询可能看起来像:“SELECT * FROM x WHERE a ='foo'AND \ $ CONDITIONS”