AND \$CONDITIONS in sqoop import 有待澄清,没有导入,为什么?
AND \$CONDITIONS in sqoop import to be clarified, nothing imported, why?
我只做m=1
,也就是说这会强制非平行导入,对吧?
我的 table 有 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 文件:
我的导入脚本有什么问题?
有两种使用 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"
我只做m=1
,也就是说这会强制非平行导入,对吧?
我的 table 有 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 文件:
有两种使用 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"