【问题标题】:EDIT the Azure databrics cluster's SPARK configuration using PowerShell and REST API使用 PowerShell 和 REST API 编辑 Azure databricks 集群 SPARK 配置
【发布时间】:2019-11-22 06:43:08
【问题描述】:

我正在尝试使用 PowerShell 和 REST API 编辑 Azure databrics 集群的 SPARK 配置。但是我收到一个我无法理解/修复的错误。我提供了“必填”字段作为参数,但是,错误表明我没有传递它们

代码:

$DBAPIRootUrl = "dec" # example: https://uksouth.azuredatabricks.net
$DBAPIKey = "abc" # Example dapi601e67891a9d1f7886e40916479aaa

[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12

$ClustersAPIListUrl = $DBAPIRootUrl.Trim('/') + "/api/2.0/clusters/list"
$ClustersAPIEditUrl = $DBAPIRootUrl.Trim('/') + "/api/2.0/clusters/edit"


$headers = @{
  Authorization = "Bearer $DBAPIKey"
  "Content-Type" = "application/json"
}

$response = Invoke-WebRequest -Uri $ClustersAPIListUrl -Method GET -Headers $headers #-Body $parameters
$json_response = ($response.Content | ConvertFrom-Json)


$jsonDoc = [pscustomobject]@{
    cluster_id = $json_response.clusters.cluster_id
    spark_version = $json_response.clusters.spark_version
    node_type_id = $json_response.clusters.node_type_id
    spark_conf = "
javax.jdo.option.ConnectionPassword 
datanucleus.fixedDatastore false
javax.jdo.option.ConnectionURL jdbc:sqlserver://metadatasrvr.database.windows.net:1433;database=emptydb
datanucleus.schema.autoCreateAll true
spark.hadoop.hive.metastore.schema.verification false
datanucleus.autoCreateSchema true
spark.sql.hive.metastore.jars maven
javax.jdo.option.ConnectionDriverName com.microsoft.sqlserver.jdbc.SQLServerDriver
spark.sql.hive.metastore.version 1.2.0
javax.jdo.option.ConnectionUserName"
}

$jsonDoc | ConvertTo-Json

#$parameters | ConvertTo-Json
$response = Invoke-WebRequest -Uri $ClustersAPIEditUrl -Method POST -Headers $headers -Body $jsonDoc

错误:

Invoke-WebRequest : {"error_code":"INVALID_PARAMETER_VALUE","message":"Missing required fields: cluster_id, size"}
At line:21 char:13
+ $response = Invoke-WebRequest -Uri $ClustersAPIEditUrl -Method POST - ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

【问题讨论】:

    标签: azure-powershell azure-databricks


    【解决方案1】:

    错误消息清楚地解释了“"error_code":"INVALID_PARAMETER_VALUE","message":"Missing required fields: cluster_id, size"}。

    注意:在编辑 Databricks 集群时,请确保将“cluster_id”和“node_type_id”作为强制性预期字段传递。

    编辑集群配置以匹配提供的属性和大小。

    示例请求:

    {
     "cluster_id": "1202-211320-brick1",
     "num_workers": 10,
     "spark_version": "5.3.x-scala2.11",
     "node_type_id": "Standard_D3_v2"
    }
    

    参考:Databricks - REST API EDIT clusters

    希望这会有所帮助。

    【讨论】:

    • 我已经通过了细节:spark_version = $json_response.clusters.spark_version node_type_id = $json_response.clusters.node_type_id
    • 能否请您交叉检查参数格式,因为错误消息显示“Invalid_parameter_value”?
    • 我已经解决了这个问题。转换后我没有保存 JSON。 "$jsonDoc | ConvertTo-Json" 到 "$jsonDoc = $jsonDoc | ConvertTo-Json"
    • 感谢您的确认。如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢。
    • 您能否帮我将“string”转换为“SparkConfPair”以将字符串数据传递给“spark_conf”属性。 Invoke-WebRequest : {"error_code":"MALFORMED_REQUEST","message":"Could not parse request object: Expected object for field spark_conf, found STRING"}
    猜你喜欢
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2019-03-16
    • 2020-04-15
    • 2022-01-24
    相关资源
    最近更新 更多