You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Databricks中不创建新集群执行spark-submit并传参

解决DBFS中PySpark作业执行及传参问题(无新建集群权限、无仓库访问权限)

可行方案

1. 使用现有集群通过Databricks Jobs提交

如果能访问Databricks Jobs界面或CLI,可直接指定现有集群执行DBFS中的脚本:

  • UI方式:

    • 进入Databricks Jobs页面,点击"Create Job"
    • 在"Cluster"选项中选择Existing Cluster(选择你有权限访问的集群)
    • 在"Task"类型中选择"Python script",指定脚本路径为dbfs:/your/script/path.py
    • 在"Parameters"栏输入需要传递的参数(格式为param1 value1 param2 value2)
    • 保存并运行作业
  • CLI方式:
    执行以下命令(替换集群ID、脚本路径和参数):

    databricks jobs create --json '{
      "name": "DBFS PySpark Job Execution",
      "existing_cluster_id": "your-existing-cluster-id",
      "spark_python_task": {
        "python_file": "dbfs:/path/to/your/script.py",
        "parameters": ["--input-path", "dbfs:/input/data", "--output-path", "dbfs:/output/result"]
      }
    }'
    

2. 通过交互式笔记本调用脚本

如果有权限创建并运行笔记本,可通过%run命令直接调用DBFS脚本并传参:

  • 创建一个新的笔记本,选择现有集群附加
  • 在笔记本单元格中执行:
    %run /path/to/your/script.py $input_path="dbfs:/input/data" $output_path="dbfs:/output/result"
    
  • 脚本中可通过dbutils.widgets.get()获取参数:
    input_path = dbutils.widgets.get("input_path")
    output_path = dbutils.widgets.get("output_path")
    

3. 使用Databricks REST API提交作业

如果有权限调用REST API,可发送POST请求创建作业:

POST /api/2.1/jobs/create
Content-Type: application/json

{
  "name": "DBFS PySpark Job",
  "existing_cluster_id": "your-cluster-id",
  "spark_python_task": {
    "python_file": "dbfs:/path/to/your/script.py",
    "parameters": ["param1", "value1", "param2", "value2"]
  }
}

关键注意事项

  • 确保你拥有目标现有集群的附加权限(即允许你在该集群上运行任务)
  • 脚本中处理参数的方式要和传递方式匹配:用命令行参数则用sys.argv,用笔记本传参则用dbutils.widgets

内容的提问来源于stack exchange,提问作者DexterMe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:25:42