gpt4 book ai didi

azure - Azure HDInsight参数引用错误

转载 作者:行者123 更新时间:2023-12-02 21:51:01 25 4
gpt4 key购买 nike

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

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com