0
我試圖從一個Azure SQL數據庫與Hadoop(HDInsight)使用數據。Azure HDInsight參數被錯誤引用
獲取數據和執行工作,我運行一個C#控制檯程序下面的代碼:
var jobClient = JobSubmissionClientFactory.Connect(creds);
//Setup the sqoop job
string query = "import --connect \"jdbc:sqlserver://...:1433;database=...;user=...;password=...;\" --jobname testname123 --query \"SELECT * FROM HouseDatas WHERE $CONDITIONS\" --split-by ID --target-dir asv://[email protected]/Input/" + Job_ID + "/";
var sqoopJob = new SqoopJobCreateParameters()
{
Command = query,
StatusFolder = "asv://[email protected]/Input/sqoop_status/" + Job_ID + "/",
};
錯誤消息:
Unhandled Exception: Microsoft.Hadoop.Client.HttpLayerException: Request failed with code: BadRequest
Content:("error":"Passed in parameter is incorrectly quoted: \"SELECT")
at Microsoft.WindowsAzure...
...
注意一些事情:
- 它沒有--query如果我簡單地選擇整個表格
- 如果在Powershell中執行該命令,則該命令有效
- 如果查詢中沒有空格(即, --query \「SELECT \」),但顯然這不是很有用
- 單引號(--query'SELECT ... $ Conditions')工作,但作業不產生任何輸出
- 使用@和雙引號不起作用
- 這個問題似乎類似於Double Quotes in Hadoop Hive Query,但答案(指定作業名)並沒有幫助
所以問題:爲什麼在查詢中空間導致此錯誤?
在此先感謝您的幫助
對不起,對於遲到的答案。仍然有一些問題,但終於奏效了,但我仍然想知道是什麼導致了編碼問題。 –