説明
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"
}
}
}