Azure HDInsight参数的引用不正确

Azure HDInsight参数的引用不正确,azure,hadoop,azure-sql-database,azure-hdinsight,Azure,Hadoop,Azure Sql Database,Azure Hdinsight,我正在尝试将Azure SQL数据库中的数据与Hadoop(HDInsight)一起使用 为了获取数据并执行作业,我在C#console程序中运行以下代码: var jobClient = JobSubmissionClientFactory.Connect(creds); //Setup the sqoop job string query = "import --connect \"jdbc:sqlserver://...:1433;data

我正在尝试将Azure SQL数据库中的数据与Hadoop(HDInsight)一起使用

为了获取数据并执行作业,我在C#console程序中运行以下代码:

        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...
        ...
一些值得注意的事情:

        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')起作用,但作业不会产生任何输出
  • 使用@和双引号是行不通的
  • 问题似乎与类似,但答案(指定工作名称)没有帮助
那么问题是:为什么查询中的空格会导致此错误?


提前感谢您的帮助

您可以将命令另存为文件,并使用-file参数指向它。这将避免编码问题。

很抱歉回答得太晚。虽然仍然存在一些问题,但它最终还是起了作用,但我仍然想知道是什么首先导致了编码问题。