Databricks spark_submit_task の利用の見直し

可能な場合は、Databricks の処理内容に合うタスク形式を使用します。

説明

Databricks の spark_submit_task は新しいクラスターでのみ実行でき、ライブラリや Spark 設定の渡し方にも制約があります。可能な場合は、処理に合う spark_jar_task、spark_python_task、notebook_task を使用してください。

想定される影響

タスク形式に合わないクラスターや引数を指定すると、ジョブが失敗する場合があります。spark_submit_task の利用だけで、セキュリティ侵害が発生しているとは限りません。

対処方法

コードに合うタスク形式に移行し、実行開始位置、引数、ライブラリ、実行環境の要件を維持してください。変更後も意図した結果になることを確認してください。

例

どちらの抜粋も同じ JAR の com.acme.data.Main を実行します。変更前は新しいクラスターを、変更後は既存の共有クラスターを使用します。JAR の場所を指定する var.application_jar、データソース、クラスターの定義は省略しています。

変更前

hcl
resource "databricks_job" "example" {
  name = "Job with multiple tasks"

  task {
    task_key = "b"
    new_cluster {
      num_workers   = 1
      spark_version = data.databricks_spark_version.latest.id
      node_type_id  = data.databricks_node_type.smallest.id
    }

    spark_submit_task {
      parameters = ["--class", "com.acme.data.Main", var.application_jar]
    }
  }
}

変更後

hcl
resource "databricks_job" "example" {
  name = "Job with multiple tasks"

  task {
    task_key            = "b"
    existing_cluster_id = databricks_cluster.shared.id

    library {
      jar = var.application_jar
    }

    spark_jar_task {
      main_class_name = "com.acme.data.Main"
    }
  }
}

参考資料