我正在尝试将Azure SQL数据库中的数据与Hadoop(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://...@....blob.core.windows.net/Input/" + Job_ID + "/";
var sqoopJob = new SqoopJobCreateParameters()
{
Command = query,
StatusFolder = "asv://...@....blob.core.windows.net/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...
...
注意事项:
那么问题是:为什么查询中的空格会导致此错误?
在此先感谢您的帮助
最佳答案
您可以将命令另存为文件,并使用-File参数指向它。这样可以避免编码问题。
关于azure - Azure HDInsight参数引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21016221/