API заданий Databricks создает задание с одним узловым кластером

#api #apache-spark #cluster-computing #databricks #jobs

Вопрос:

Я пытаюсь понять, почему я получаю следующую ошибку, когда использую API заданий Databricks.

{ «код ошибки»: «НЕДОПУСТИМОЕ значение параметра», «сообщение»: «Ошибка проверки кластера: Отсутствует обязательное поле: настройки.cluster_spec.new_cluster.size» }

Что я сделал:

  1. Я создал задание, выполняемое в кластере с одним узлом, используя пользовательский интерфейс Databricks.
  2. Я скопировал и вставил json конфигурации задания из пользовательского интерфейса.
  3. Я удалил свою работу и попытался воссоздать ее, отправив СООБЩЕНИЕ с помощью API заданий с скопированным json, который выглядит следующим образом:
 {
    "new_cluster": {
        "spark_version": "7.5.x-scala2.12",
        "spark_conf": {
            "spark.master": "local[*]",
            "spark.databricks.cluster.profile": "singleNode"
        },
        "azure_attributes": {
            "availability": "ON_DEMAND_AZURE",
            "first_on_demand": 1,
            "spot_bid_max_price": -1
        },
        "node_type_id": "Standard_DS3_v2",
        "driver_node_type_id": "Standard_DS3_v2",
        "custom_tags": {
            "ResourceClass": "SingleNode"
        },
        "enable_elastic_disk": true
    },
    "libraries": [
        {
            "pypi": {
                "package": "koalas==1.5.0"
            }
        }
    ],
    "notebook_task": {
        "notebook_path": "/pathtoNotebook/TheNotebook",
        "base_parameters": {
            "param1": "test"
           
        }
    },
    "email_notifications": {},
    "name": " jobName",
    "max_concurrent_runs": 1
}
 

Документация API не помогает (не могу найти ничего о settings.cluster_spec.new_cluster.size). Json скопирован из пользовательского интерфейса, поэтому я думаю, что это должно быть правильно.

Спасибо за вашу помощь.

Ответ №1:

Источник: https://docs.microsoft.com/en-us/azure/databricks/dev-tools/api/latest/clusters#—create

Чтобы создать кластер с одним узлом, включите записи spark_conf и custom_tags , показанные в примере, и установите num_workers значение 0.

 {
  "cluster_name": "single-node-cluster",
  "spark_version": "7.6.x-scala2.12",
  "node_type_id": "Standard_DS3_v2",
  "num_workers": 0,
  "spark_conf": {
    "spark.databricks.cluster.profile": "singleNode",
    "spark.master": "local[*]"
  },
  "custom_tags": {
    "ResourceClass": "SingleNode"
  }
}
 

Комментарии:

1. Спасибо. В конце концов я и сам это понял. Однако ключ «custom_tag» не требуется.