2016-10-01 236 views
1

我只做m=1,這意味着這是要強制非平行導入,對吧? 我的表有50萬行,我只希望在自由查詢使用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文件: Directory listing with _SUCCESS file 我的導入腳本有什麼問題?

回答

0

有兩種方式可以使用sqoop導入來編寫查詢,如下所示更新您的查詢。

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」

+0

謝謝你,這是行得通的!這是奇怪的人在我的另一個問題告訴我包括在where子句的報價 – PasLeChoix

+0

Don'不要忘記提出你接受的答案。 –