azure - Azure HDInsight参数引用错误

标签 azure hadoop azure-sql-database azure-hdinsight

我正在尝试将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...
        ...

注意事项:
  • 它不使用--query参数即可工作,即如果我只是选择整个表
  • 该命令在Powershell中执行
  • 如果查询中没有空格(即--query \“SELECT \”),则没有错误,但是显然
  • 并不是很有用
  • 单引号(--query'SELECT ... $ Conditions')有效,但是该作业不会产生任何输出
  • 使用@和双引号不起作用
  • 问题似乎类似于Double Quotes in Hadoop Hive Query,但是答案(指定工作名称)对
  • 没有帮助

    那么问题是:为什么查询中的空格会导致此错误?

    在此先感谢您的帮助

    最佳答案

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

    关于azure - Azure HDInsight参数引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21016221/

    相关文章:

    .net - 为什么 Azure Elastic Sc​​ale 不支持字符串数据类型作为分片键?

    azure - 多个单元是否意味着 Azure IoT 中心和事件中心中有多个连接字符串?

    hadoop - 无法在 Hadoop 集群中启动数据节点

    azure - Azure AD SCIM 用户预配 api 中缺少授权 token

    hadoop - 在 hadoop 框架中排序

    java - hadoop分布式副本覆盖不起作用

    visual-studio - 在哪里下载我的 Azure SQL 项目的发布配置文件?

    SQL Azure : Executing SQL directly; no cursor

    python-3.x - 如何将 xlsx 或 xls 文件读取为 Spark 数据帧

    具有 OWIN 自托管监听器的 Azure Service Fabric