[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-databricks-databricks-execution-compute":3,"mdc-9ghe9n-key":27,"related-org-databricks-databricks-execution-compute":2370,"related-repo-databricks-databricks-execution-compute":2555},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":17,"repoUrl":18,"updatedAt":19,"license":20,"forks":21,"topics":22,"repo":23,"sourceUrl":25,"mdContent":26},"databricks-execution-compute","execute code and manage Databricks compute","Execute code and manage compute on Databricks: run Python\u002FScala\u002FSQL\u002FR via serverless, classic, or interactive clusters, and create\u002Fresize\u002Fdelete clusters and SQL warehouses.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"databricks","Databricks","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fdatabricks.png",[12,16],{"name":13,"slug":14,"type":15},"Data Engineering","data-engineering","tag",{"name":9,"slug":8,"type":15},204,"https:\u002F\u002Fgithub.com\u002Fdatabricks\u002Fdatabricks-agent-skills","2026-07-12T08:04:22.587562",null,60,[],{"repoUrl":18,"stars":17,"forks":21,"topics":24,"description":20},[],"https:\u002F\u002Fgithub.com\u002Fdatabricks\u002Fdatabricks-agent-skills\u002Ftree\u002FHEAD\u002Fplugins\u002Fdatabricks\u002Fcopilot\u002Fskills\u002Fdatabricks-execution-compute","---\nname: databricks-execution-compute\ndescription: \"Execute code and manage compute on Databricks: run Python\u002FScala\u002FSQL\u002FR via serverless, classic, or interactive clusters, and create\u002Fresize\u002Fdelete clusters and SQL warehouses.\"\ncompatibility: Requires databricks CLI (>= v1.0.0)\nmetadata:\n  version: \"0.1.0\"\nparent: databricks-core\n---\n\n# Databricks Execution & Compute\n\nRun code on Databricks. Three execution modes—choose based on workload. All examples below use the Databricks CLI; see the `databricks-core` skill for install and authentication.\n\n## Execution Mode Decision Matrix\n\n| Aspect | [Databricks Connect](references\u002F1-databricks-connect.md) ⭐ | [Serverless Job](references\u002F2-serverless-job.md) | [Interactive Cluster](references\u002F3-interactive-cluster.md) |\n|--------|-------------------|----------------|---------------------|\n| **Use for** | Spark code (ETL, data gen) | Heavy processing (ML) | State across tool calls, Scala\u002FR |\n| **Startup** | Instant | ~25-50s cold start | ~5min if stopped |\n| **State** | Within Python process | None | Via context_id |\n| **Languages** | Python (PySpark) | Python, SQL | Python, Scala, SQL, R |\n| **Dependencies** | `withDependencies()` | CLI with environments spec | Install on cluster |\n\n### Decision Flow\n\nMain decision point: if you're using Declarative Automation Bundles (DABs) then follow the instructions of the [`databricks-dabs` skill](..\u002F..\u002Fskills\u002Fdatabricks-dabs\u002FSKILL.md) first. In short, you can use `databricks bundle run` to run code associated with jobs, pipelines, and other resources. This can be recognized by looking for a `databricks.yml` file in the project root. If these resources don't exist, or if you're not using DABs, then proceed with the below.\n\nPrefer Databricks Connect for all spark-based workload, then serverless.\n```\nSpark-based code? → Databricks Connect (fastest)\n  └─ Python 3.12 missing? → Install it + databricks-connect\n  └─ Install fails? → Ask user (don't auto-switch modes)\n\nHeavy\u002Flong-running (ML)? → Serverless Job (independent)\nNeed state across calls? → Interactive Cluster (list and ask which one to use)\nScala\u002FR? → Interactive Cluster (list and ask which one to use)\n```\n\n\n## How to Run Code\n\n**Read the reference file for your chosen mode before proceeding.**\n\n### Databricks Connect (run locally, prefer when it's pure spark code) → [reference](references\u002F1-databricks-connect.md)\n\n```bash\nfrom databricks.connect import DatabricksSession\n...\nspark = DatabricksSession.builder.profile(\"my-local-profile\").serverless(True).getOrCreate()\n\n\npython my_spark_script.py\n```\n\n### Serverless Job → [reference](references\u002F2-serverless-job.md)\n\nPure CLI flow: upload a local file as a workspace notebook, fire a one-time run with `databricks jobs submit` (create + run in one call, ephemeral — no Jobs UI entry, no retry), then poll + fetch the result. The local file must be a Databricks source notebook — top line `# Databricks notebook source` (Python) or `-- Databricks notebook source` (SQL).\n\n**1. Upload the local file as a workspace notebook.** `TARGET_PATH` is positional; `--file` is the local path.\n\n`databricks workspace import \u002FWorkspace\u002FUsers\u002F\u003Cuser>\u002F.ai_dev_kit\u002Ftrain --file \u002Flocal\u002Fpath\u002Fto\u002Ftrain.py --format SOURCE --language PYTHON --overwrite`\n\n**2. Submit the run.** Use `--no-wait` to get `{\"run_id\": N}` back immediately; drop it to block until terminated. **`\"client\": \"4\"` is required** for `dependencies` to install (`\"1\"` silently ignores them).\n\n`databricks jobs submit --no-wait --json @submit.json`\n\n```json\n{\n  \"run_name\": \"train-run\",\n  \"tasks\": [{\n    \"task_key\": \"main\",\n    \"notebook_task\": {\"notebook_path\": \"\u002FWorkspace\u002FUsers\u002F\u003Cuser>\u002F.ai_dev_kit\u002Ftrain\"},\n    \"environment_key\": \"ml_env\"\n  }],\n  \"environments\": [{\n    \"environment_key\": \"ml_env\",\n    \"spec\": {\"client\": \"4\", \"dependencies\": [\"scikit-learn==1.5.2\", \"mlflow==2.22.0\"]}\n  }]\n}\n```\n\n**3. Check state \u002F wait for completion.** Life-cycle: `PENDING` → `RUNNING` → `TERMINATED` (or `SKIPPED` \u002F `INTERNAL_ERROR`). Only read `.state.result_state` (`SUCCESS` \u002F `FAILED` \u002F `CANCELED`) once life-cycle is `TERMINATED`.\n\n`databricks jobs get-run \u003CRUN_ID> | jq '{state: .state.life_cycle_state, result: .state.result_state, duration_ms: .execution_duration, url: .run_page_url, task_run_id: .tasks[0].run_id}'`\n\n**4. Fetch the output \u002F error.** **Gotcha:** `get-run-output` takes the **task** run_id (`.tasks[0].run_id`), NOT the parent `run_id` from submit. `notebook_output.result` is the string passed to `dbutils.notebook.exit()`.\n\n`databricks jobs get-run-output \u003CTASK_RUN_ID> | jq '{result: .notebook_output.result, error, error_trace}'`\n\nAlways use `dbutils.notebook.exit(\u003Cstring>)` in the notebook — `print()` is not captured by `get-run-output`. For JSON results: `dbutils.notebook.exit(json.dumps({...}))` then parse `.notebook_output.result` client-side.\n\n### Interactive Cluster → [reference](references\u002F3-interactive-cluster.md)\n\n**Avoid by default — prefer Serverless Job.** Only use an interactive cluster when:\n- you have an existing classic cluster already running and available, or\n- you need live, stateful execution across multiple calls (debugging via an execution context), or\n- the user explicitly asks for it.\n\nInteractive clusters are **slow to start (3-8 min)** and cost money while running. Don't start one implicitly.\n\n## CLI Command Map\n\nAll compute lifecycle and code-execution actions go through the Databricks CLI. Headline commands:\n\n| Action | Command |\n|--------|---------|\n| Upload local file as workspace notebook | `databricks workspace import \u003CWORKSPACE_PATH> --file \u003CLOCAL> --format SOURCE --language PYTHON --overwrite` |\n| Run serverless code (upload + submit + wait) | `databricks jobs submit --json @submit.json` (see Serverless Job section above; with `--no-wait` for async) |\n| Get run state \u002F wait | `databricks jobs get-run \u003CRUN_ID>` (poll `.state.life_cycle_state`) |\n| Fetch run output | `databricks jobs get-run-output \u003CTASK_RUN_ID>` |\n| List clusters | `databricks clusters list --output json` |\n| Get cluster details | `databricks clusters get \u003CCLUSTER_ID>` |\n| Start \u002F restart \u002F terminate cluster | `databricks clusters start\u002Frestart\u002Fdelete \u003CCLUSTER_ID>` |\n| Permanently delete cluster | `databricks clusters permanent-delete \u003CCLUSTER_ID>` |\n| Create cluster | `databricks clusters create --json '{...}'` (see [3-interactive-cluster.md](references\u002F3-interactive-cluster.md)) |\n| List node types \u002F Spark versions | `databricks clusters list-node-types` \u002F `databricks clusters spark-versions` |\n| Execute code on a running cluster | `databricks api post \u002Fapi\u002F1.2\u002Fcontexts\u002Fcreate` + `databricks api post \u002Fapi\u002F1.2\u002Fcommands\u002Fexecute` (see [3-interactive-cluster.md](references\u002F3-interactive-cluster.md)) |\n| SQL warehouses | `databricks warehouses create\u002Flist\u002Fget\u002Fstart\u002Fstop\u002Fedit\u002Fdelete` (see SQL Warehouses below) |\n\n### SQL Warehouses\n\nAll `ID`-taking commands use positional arg (no `--id` flag). Use `databricks warehouses list` to find an ID.\n\n```bash\n# Create a serverless SQL warehouse. min_num_clusters + max_num_clusters are REQUIRED\n# (the server rejects the default 0). Keep the aidevkit_project tag for resource tracking.\ndatabricks warehouses create --json '{\n  \"name\": \"my-warehouse\",\n  \"cluster_size\": \"Small\",\n  \"enable_serverless_compute\": true,\n  \"auto_stop_mins\": 10,\n  \"min_num_clusters\": 1,\n  \"max_num_clusters\": 1,\n  \"tags\": {\"custom_tags\": [{\"key\": \"aidevkit_project\", \"value\": \"ai-dev-kit\"}]}\n}'\n\n# List \u002F find — trim to id, name, state with jq\ndatabricks warehouses list -o json | jq '.[] | {id, name, state, size: .cluster_size}'\n\n# Find by name\ndatabricks warehouses list -o json | jq '.[] | select(.name == \"my-warehouse\")'\n\n# Get one warehouse's full config\ndatabricks warehouses get \u003CWAREHOUSE_ID>\n\n# Start \u002F stop (both are LROs; add --no-wait to return immediately)\ndatabricks warehouses start \u003CWAREHOUSE_ID>\ndatabricks warehouses stop  \u003CWAREHOUSE_ID>\n\n# Resize \u002F reconfigure — pass the FULL desired config (omitted fields revert to defaults,\n# so always re-state min_num_clusters\u002Fmax_num_clusters). Use --no-wait if the warehouse\n# is STOPPED, otherwise edit blocks trying to reach RUNNING and errors out (the mutation\n# itself still applies). When the warehouse is already RUNNING, --no-wait is optional.\ndatabricks warehouses edit \u003CWAREHOUSE_ID> --no-wait --json '{\n  \"name\": \"my-warehouse\",\n  \"cluster_size\": \"Medium\",\n  \"enable_serverless_compute\": true,\n  \"auto_stop_mins\": 15,\n  \"min_num_clusters\": 1,\n  \"max_num_clusters\": 1\n}'\n\n# Delete (irreversible)\ndatabricks warehouses delete \u003CWAREHOUSE_ID>\n```\n\n**Sizes:** `2X-Small`, `X-Small`, `Small`, `Medium`, `Large`, `X-Large`, `2X-Large`, `3X-Large`, `4X-Large`. **Types:** set `\"warehouse_type\": \"PRO\"` (default) or `\"CLASSIC\"` in the JSON body.\n\n## Related Skills\n\n- **[databricks-synthetic-data-gen](..\u002Fdatabricks-synthetic-data-gen\u002FSKILL.md)** — Data generation using Spark + Faker\n- **databricks-jobs** — Production job orchestration\n- **[databricks-dbsql](..\u002Fdatabricks-dbsql\u002FSKILL.md)** — SQL warehouse and AI functions\n",{"data":28,"body":33},{"name":4,"description":6,"compatibility":29,"metadata":30,"parent":32},"Requires databricks CLI (>= v1.0.0)",{"version":31},"0.1.0","databricks-core",{"type":34,"children":35},"root",[36,44,58,65,253,260,295,300,312,318,326,337,479,489,518,544,553,608,617,1039,1125,1134,1195,1204,1248,1258,1268,1288,1300,1306,1311,1586,1592,1621,2220,2317,2323,2364],{"type":37,"tag":38,"props":39,"children":40},"element","h1",{"id":4},[41],{"type":42,"value":43},"text","Databricks Execution & Compute",{"type":37,"tag":45,"props":46,"children":47},"p",{},[48,50,56],{"type":42,"value":49},"Run code on Databricks. Three execution modes—choose based on workload. All examples below use the Databricks CLI; see the ",{"type":37,"tag":51,"props":52,"children":54},"code",{"className":53},[],[55],{"type":42,"value":32},{"type":42,"value":57}," skill for install and authentication.",{"type":37,"tag":59,"props":60,"children":62},"h2",{"id":61},"execution-mode-decision-matrix",[63],{"type":42,"value":64},"Execution Mode Decision Matrix",{"type":37,"tag":66,"props":67,"children":68},"table",{},[69,113],{"type":37,"tag":70,"props":71,"children":72},"thead",{},[73],{"type":37,"tag":74,"props":75,"children":76},"tr",{},[77,83,95,104],{"type":37,"tag":78,"props":79,"children":80},"th",{},[81],{"type":42,"value":82},"Aspect",{"type":37,"tag":78,"props":84,"children":85},{},[86,93],{"type":37,"tag":87,"props":88,"children":90},"a",{"href":89},"references\u002F1-databricks-connect.md",[91],{"type":42,"value":92},"Databricks Connect",{"type":42,"value":94}," ⭐",{"type":37,"tag":78,"props":96,"children":97},{},[98],{"type":37,"tag":87,"props":99,"children":101},{"href":100},"references\u002F2-serverless-job.md",[102],{"type":42,"value":103},"Serverless Job",{"type":37,"tag":78,"props":105,"children":106},{},[107],{"type":37,"tag":87,"props":108,"children":110},{"href":109},"references\u002F3-interactive-cluster.md",[111],{"type":42,"value":112},"Interactive Cluster",{"type":37,"tag":114,"props":115,"children":116},"tbody",{},[117,145,171,197,223],{"type":37,"tag":74,"props":118,"children":119},{},[120,130,135,140],{"type":37,"tag":121,"props":122,"children":123},"td",{},[124],{"type":37,"tag":125,"props":126,"children":127},"strong",{},[128],{"type":42,"value":129},"Use for",{"type":37,"tag":121,"props":131,"children":132},{},[133],{"type":42,"value":134},"Spark code (ETL, data gen)",{"type":37,"tag":121,"props":136,"children":137},{},[138],{"type":42,"value":139},"Heavy processing (ML)",{"type":37,"tag":121,"props":141,"children":142},{},[143],{"type":42,"value":144},"State across tool calls, Scala\u002FR",{"type":37,"tag":74,"props":146,"children":147},{},[148,156,161,166],{"type":37,"tag":121,"props":149,"children":150},{},[151],{"type":37,"tag":125,"props":152,"children":153},{},[154],{"type":42,"value":155},"Startup",{"type":37,"tag":121,"props":157,"children":158},{},[159],{"type":42,"value":160},"Instant",{"type":37,"tag":121,"props":162,"children":163},{},[164],{"type":42,"value":165},"~25-50s cold start",{"type":37,"tag":121,"props":167,"children":168},{},[169],{"type":42,"value":170},"~5min if stopped",{"type":37,"tag":74,"props":172,"children":173},{},[174,182,187,192],{"type":37,"tag":121,"props":175,"children":176},{},[177],{"type":37,"tag":125,"props":178,"children":179},{},[180],{"type":42,"value":181},"State",{"type":37,"tag":121,"props":183,"children":184},{},[185],{"type":42,"value":186},"Within Python process",{"type":37,"tag":121,"props":188,"children":189},{},[190],{"type":42,"value":191},"None",{"type":37,"tag":121,"props":193,"children":194},{},[195],{"type":42,"value":196},"Via context_id",{"type":37,"tag":74,"props":198,"children":199},{},[200,208,213,218],{"type":37,"tag":121,"props":201,"children":202},{},[203],{"type":37,"tag":125,"props":204,"children":205},{},[206],{"type":42,"value":207},"Languages",{"type":37,"tag":121,"props":209,"children":210},{},[211],{"type":42,"value":212},"Python (PySpark)",{"type":37,"tag":121,"props":214,"children":215},{},[216],{"type":42,"value":217},"Python, SQL",{"type":37,"tag":121,"props":219,"children":220},{},[221],{"type":42,"value":222},"Python, Scala, SQL, R",{"type":37,"tag":74,"props":224,"children":225},{},[226,234,243,248],{"type":37,"tag":121,"props":227,"children":228},{},[229],{"type":37,"tag":125,"props":230,"children":231},{},[232],{"type":42,"value":233},"Dependencies",{"type":37,"tag":121,"props":235,"children":236},{},[237],{"type":37,"tag":51,"props":238,"children":240},{"className":239},[],[241],{"type":42,"value":242},"withDependencies()",{"type":37,"tag":121,"props":244,"children":245},{},[246],{"type":42,"value":247},"CLI with environments spec",{"type":37,"tag":121,"props":249,"children":250},{},[251],{"type":42,"value":252},"Install on cluster",{"type":37,"tag":254,"props":255,"children":257},"h3",{"id":256},"decision-flow",[258],{"type":42,"value":259},"Decision Flow",{"type":37,"tag":45,"props":261,"children":262},{},[263,265,277,279,285,287,293],{"type":42,"value":264},"Main decision point: if you're using Declarative Automation Bundles (DABs) then follow the instructions of the ",{"type":37,"tag":87,"props":266,"children":268},{"href":267},"..\u002F..\u002Fskills\u002Fdatabricks-dabs\u002FSKILL.md",[269,275],{"type":37,"tag":51,"props":270,"children":272},{"className":271},[],[273],{"type":42,"value":274},"databricks-dabs",{"type":42,"value":276}," skill",{"type":42,"value":278}," first. In short, you can use ",{"type":37,"tag":51,"props":280,"children":282},{"className":281},[],[283],{"type":42,"value":284},"databricks bundle run",{"type":42,"value":286}," to run code associated with jobs, pipelines, and other resources. This can be recognized by looking for a ",{"type":37,"tag":51,"props":288,"children":290},{"className":289},[],[291],{"type":42,"value":292},"databricks.yml",{"type":42,"value":294}," file in the project root. If these resources don't exist, or if you're not using DABs, then proceed with the below.",{"type":37,"tag":45,"props":296,"children":297},{},[298],{"type":42,"value":299},"Prefer Databricks Connect for all spark-based workload, then serverless.",{"type":37,"tag":301,"props":302,"children":306},"pre",{"className":303,"code":305,"language":42},[304],"language-text","Spark-based code? → Databricks Connect (fastest)\n  └─ Python 3.12 missing? → Install it + databricks-connect\n  └─ Install fails? → Ask user (don't auto-switch modes)\n\nHeavy\u002Flong-running (ML)? → Serverless Job (independent)\nNeed state across calls? → Interactive Cluster (list and ask which one to use)\nScala\u002FR? → Interactive Cluster (list and ask which one to use)\n",[307],{"type":37,"tag":51,"props":308,"children":310},{"__ignoreMap":309},"",[311],{"type":42,"value":305},{"type":37,"tag":59,"props":313,"children":315},{"id":314},"how-to-run-code",[316],{"type":42,"value":317},"How to Run Code",{"type":37,"tag":45,"props":319,"children":320},{},[321],{"type":37,"tag":125,"props":322,"children":323},{},[324],{"type":42,"value":325},"Read the reference file for your chosen mode before proceeding.",{"type":37,"tag":254,"props":327,"children":329},{"id":328},"databricks-connect-run-locally-prefer-when-its-pure-spark-code-reference",[330,332],{"type":42,"value":331},"Databricks Connect (run locally, prefer when it's pure spark code) → ",{"type":37,"tag":87,"props":333,"children":334},{"href":89},[335],{"type":42,"value":336},"reference",{"type":37,"tag":301,"props":338,"children":342},{"className":339,"code":340,"language":341,"meta":309,"style":309},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from databricks.connect import DatabricksSession\n...\nspark = DatabricksSession.builder.profile(\"my-local-profile\").serverless(True).getOrCreate()\n\n\npython my_spark_script.py\n","bash",[343],{"type":37,"tag":51,"props":344,"children":345},{"__ignoreMap":309},[346,374,384,447,457,465],{"type":37,"tag":347,"props":348,"children":351},"span",{"class":349,"line":350},"line",1,[352,358,364,369],{"type":37,"tag":347,"props":353,"children":355},{"style":354},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[356],{"type":42,"value":357},"from",{"type":37,"tag":347,"props":359,"children":361},{"style":360},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[362],{"type":42,"value":363}," databricks.connect",{"type":37,"tag":347,"props":365,"children":366},{"style":360},[367],{"type":42,"value":368}," import",{"type":37,"tag":347,"props":370,"children":371},{"style":360},[372],{"type":42,"value":373}," DatabricksSession\n",{"type":37,"tag":347,"props":375,"children":377},{"class":349,"line":376},2,[378],{"type":37,"tag":347,"props":379,"children":381},{"style":380},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[382],{"type":42,"value":383},"...\n",{"type":37,"tag":347,"props":385,"children":387},{"class":349,"line":386},3,[388,393,398,403,409,414,419,424,428,433,437,442],{"type":37,"tag":347,"props":389,"children":390},{"style":354},[391],{"type":42,"value":392},"spark",{"type":37,"tag":347,"props":394,"children":395},{"style":360},[396],{"type":42,"value":397}," =",{"type":37,"tag":347,"props":399,"children":400},{"style":360},[401],{"type":42,"value":402}," DatabricksSession.builder.profile",{"type":37,"tag":347,"props":404,"children":406},{"style":405},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[407],{"type":42,"value":408},"(",{"type":37,"tag":347,"props":410,"children":411},{"style":354},[412],{"type":42,"value":413},"\"my-local-profile\"",{"type":37,"tag":347,"props":415,"children":416},{"style":405},[417],{"type":42,"value":418},")",{"type":37,"tag":347,"props":420,"children":421},{"style":360},[422],{"type":42,"value":423},".serverless",{"type":37,"tag":347,"props":425,"children":426},{"style":405},[427],{"type":42,"value":408},{"type":37,"tag":347,"props":429,"children":430},{"style":354},[431],{"type":42,"value":432},"True",{"type":37,"tag":347,"props":434,"children":435},{"style":405},[436],{"type":42,"value":418},{"type":37,"tag":347,"props":438,"children":439},{"style":360},[440],{"type":42,"value":441},".getOrCreate",{"type":37,"tag":347,"props":443,"children":444},{"style":405},[445],{"type":42,"value":446},"()\n",{"type":37,"tag":347,"props":448,"children":450},{"class":349,"line":449},4,[451],{"type":37,"tag":347,"props":452,"children":454},{"emptyLinePlaceholder":453},true,[455],{"type":42,"value":456},"\n",{"type":37,"tag":347,"props":458,"children":460},{"class":349,"line":459},5,[461],{"type":37,"tag":347,"props":462,"children":463},{"emptyLinePlaceholder":453},[464],{"type":42,"value":456},{"type":37,"tag":347,"props":466,"children":468},{"class":349,"line":467},6,[469,474],{"type":37,"tag":347,"props":470,"children":471},{"style":354},[472],{"type":42,"value":473},"python",{"type":37,"tag":347,"props":475,"children":476},{"style":360},[477],{"type":42,"value":478}," my_spark_script.py\n",{"type":37,"tag":254,"props":480,"children":482},{"id":481},"serverless-job-reference",[483,485],{"type":42,"value":484},"Serverless Job → ",{"type":37,"tag":87,"props":486,"children":487},{"href":100},[488],{"type":42,"value":336},{"type":37,"tag":45,"props":490,"children":491},{},[492,494,500,502,508,510,516],{"type":42,"value":493},"Pure CLI flow: upload a local file as a workspace notebook, fire a one-time run with ",{"type":37,"tag":51,"props":495,"children":497},{"className":496},[],[498],{"type":42,"value":499},"databricks jobs submit",{"type":42,"value":501}," (create + run in one call, ephemeral — no Jobs UI entry, no retry), then poll + fetch the result. The local file must be a Databricks source notebook — top line ",{"type":37,"tag":51,"props":503,"children":505},{"className":504},[],[506],{"type":42,"value":507},"# Databricks notebook source",{"type":42,"value":509}," (Python) or ",{"type":37,"tag":51,"props":511,"children":513},{"className":512},[],[514],{"type":42,"value":515},"-- Databricks notebook source",{"type":42,"value":517}," (SQL).",{"type":37,"tag":45,"props":519,"children":520},{},[521,526,528,534,536,542],{"type":37,"tag":125,"props":522,"children":523},{},[524],{"type":42,"value":525},"1. Upload the local file as a workspace notebook.",{"type":42,"value":527}," ",{"type":37,"tag":51,"props":529,"children":531},{"className":530},[],[532],{"type":42,"value":533},"TARGET_PATH",{"type":42,"value":535}," is positional; ",{"type":37,"tag":51,"props":537,"children":539},{"className":538},[],[540],{"type":42,"value":541},"--file",{"type":42,"value":543}," is the local path.",{"type":37,"tag":45,"props":545,"children":546},{},[547],{"type":37,"tag":51,"props":548,"children":550},{"className":549},[],[551],{"type":42,"value":552},"databricks workspace import \u002FWorkspace\u002FUsers\u002F\u003Cuser>\u002F.ai_dev_kit\u002Ftrain --file \u002Flocal\u002Fpath\u002Fto\u002Ftrain.py --format SOURCE --language PYTHON --overwrite",{"type":37,"tag":45,"props":554,"children":555},{},[556,561,563,569,571,577,579,590,592,598,600,606],{"type":37,"tag":125,"props":557,"children":558},{},[559],{"type":42,"value":560},"2. Submit the run.",{"type":42,"value":562}," Use ",{"type":37,"tag":51,"props":564,"children":566},{"className":565},[],[567],{"type":42,"value":568},"--no-wait",{"type":42,"value":570}," to get ",{"type":37,"tag":51,"props":572,"children":574},{"className":573},[],[575],{"type":42,"value":576},"{\"run_id\": N}",{"type":42,"value":578}," back immediately; drop it to block until terminated. ",{"type":37,"tag":125,"props":580,"children":581},{},[582,588],{"type":37,"tag":51,"props":583,"children":585},{"className":584},[],[586],{"type":42,"value":587},"\"client\": \"4\"",{"type":42,"value":589}," is required",{"type":42,"value":591}," for ",{"type":37,"tag":51,"props":593,"children":595},{"className":594},[],[596],{"type":42,"value":597},"dependencies",{"type":42,"value":599}," to install (",{"type":37,"tag":51,"props":601,"children":603},{"className":602},[],[604],{"type":42,"value":605},"\"1\"",{"type":42,"value":607}," silently ignores them).",{"type":37,"tag":45,"props":609,"children":610},{},[611],{"type":37,"tag":51,"props":612,"children":614},{"className":613},[],[615],{"type":42,"value":616},"databricks jobs submit --no-wait --json @submit.json",{"type":37,"tag":301,"props":618,"children":622},{"className":619,"code":620,"language":621,"meta":309,"style":309},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"run_name\": \"train-run\",\n  \"tasks\": [{\n    \"task_key\": \"main\",\n    \"notebook_task\": {\"notebook_path\": \"\u002FWorkspace\u002FUsers\u002F\u003Cuser>\u002F.ai_dev_kit\u002Ftrain\"},\n    \"environment_key\": \"ml_env\"\n  }],\n  \"environments\": [{\n    \"environment_key\": \"ml_env\",\n    \"spec\": {\"client\": \"4\", \"dependencies\": [\"scikit-learn==1.5.2\", \"mlflow==2.22.0\"]}\n  }]\n}\n","json",[623],{"type":37,"tag":51,"props":624,"children":625},{"__ignoreMap":309},[626,634,677,702,740,801,835,844,869,905,1021,1030],{"type":37,"tag":347,"props":627,"children":628},{"class":349,"line":350},[629],{"type":37,"tag":347,"props":630,"children":631},{"style":405},[632],{"type":42,"value":633},"{\n",{"type":37,"tag":347,"props":635,"children":636},{"class":349,"line":376},[637,642,648,653,658,663,668,672],{"type":37,"tag":347,"props":638,"children":639},{"style":405},[640],{"type":42,"value":641},"  \"",{"type":37,"tag":347,"props":643,"children":645},{"style":644},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[646],{"type":42,"value":647},"run_name",{"type":37,"tag":347,"props":649,"children":650},{"style":405},[651],{"type":42,"value":652},"\"",{"type":37,"tag":347,"props":654,"children":655},{"style":405},[656],{"type":42,"value":657},":",{"type":37,"tag":347,"props":659,"children":660},{"style":405},[661],{"type":42,"value":662}," \"",{"type":37,"tag":347,"props":664,"children":665},{"style":360},[666],{"type":42,"value":667},"train-run",{"type":37,"tag":347,"props":669,"children":670},{"style":405},[671],{"type":42,"value":652},{"type":37,"tag":347,"props":673,"children":674},{"style":405},[675],{"type":42,"value":676},",\n",{"type":37,"tag":347,"props":678,"children":679},{"class":349,"line":386},[680,684,689,693,697],{"type":37,"tag":347,"props":681,"children":682},{"style":405},[683],{"type":42,"value":641},{"type":37,"tag":347,"props":685,"children":686},{"style":644},[687],{"type":42,"value":688},"tasks",{"type":37,"tag":347,"props":690,"children":691},{"style":405},[692],{"type":42,"value":652},{"type":37,"tag":347,"props":694,"children":695},{"style":405},[696],{"type":42,"value":657},{"type":37,"tag":347,"props":698,"children":699},{"style":405},[700],{"type":42,"value":701}," [{\n",{"type":37,"tag":347,"props":703,"children":704},{"class":349,"line":449},[705,710,715,719,723,727,732,736],{"type":37,"tag":347,"props":706,"children":707},{"style":405},[708],{"type":42,"value":709},"    \"",{"type":37,"tag":347,"props":711,"children":712},{"style":354},[713],{"type":42,"value":714},"task_key",{"type":37,"tag":347,"props":716,"children":717},{"style":405},[718],{"type":42,"value":652},{"type":37,"tag":347,"props":720,"children":721},{"style":405},[722],{"type":42,"value":657},{"type":37,"tag":347,"props":724,"children":725},{"style":405},[726],{"type":42,"value":662},{"type":37,"tag":347,"props":728,"children":729},{"style":360},[730],{"type":42,"value":731},"main",{"type":37,"tag":347,"props":733,"children":734},{"style":405},[735],{"type":42,"value":652},{"type":37,"tag":347,"props":737,"children":738},{"style":405},[739],{"type":42,"value":676},{"type":37,"tag":347,"props":741,"children":742},{"class":349,"line":459},[743,747,752,756,760,765,769,775,779,783,787,792,796],{"type":37,"tag":347,"props":744,"children":745},{"style":405},[746],{"type":42,"value":709},{"type":37,"tag":347,"props":748,"children":749},{"style":354},[750],{"type":42,"value":751},"notebook_task",{"type":37,"tag":347,"props":753,"children":754},{"style":405},[755],{"type":42,"value":652},{"type":37,"tag":347,"props":757,"children":758},{"style":405},[759],{"type":42,"value":657},{"type":37,"tag":347,"props":761,"children":762},{"style":405},[763],{"type":42,"value":764}," {",{"type":37,"tag":347,"props":766,"children":767},{"style":405},[768],{"type":42,"value":652},{"type":37,"tag":347,"props":770,"children":772},{"style":771},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[773],{"type":42,"value":774},"notebook_path",{"type":37,"tag":347,"props":776,"children":777},{"style":405},[778],{"type":42,"value":652},{"type":37,"tag":347,"props":780,"children":781},{"style":405},[782],{"type":42,"value":657},{"type":37,"tag":347,"props":784,"children":785},{"style":405},[786],{"type":42,"value":662},{"type":37,"tag":347,"props":788,"children":789},{"style":360},[790],{"type":42,"value":791},"\u002FWorkspace\u002FUsers\u002F\u003Cuser>\u002F.ai_dev_kit\u002Ftrain",{"type":37,"tag":347,"props":793,"children":794},{"style":405},[795],{"type":42,"value":652},{"type":37,"tag":347,"props":797,"children":798},{"style":405},[799],{"type":42,"value":800},"},\n",{"type":37,"tag":347,"props":802,"children":803},{"class":349,"line":467},[804,808,813,817,821,825,830],{"type":37,"tag":347,"props":805,"children":806},{"style":405},[807],{"type":42,"value":709},{"type":37,"tag":347,"props":809,"children":810},{"style":354},[811],{"type":42,"value":812},"environment_key",{"type":37,"tag":347,"props":814,"children":815},{"style":405},[816],{"type":42,"value":652},{"type":37,"tag":347,"props":818,"children":819},{"style":405},[820],{"type":42,"value":657},{"type":37,"tag":347,"props":822,"children":823},{"style":405},[824],{"type":42,"value":662},{"type":37,"tag":347,"props":826,"children":827},{"style":360},[828],{"type":42,"value":829},"ml_env",{"type":37,"tag":347,"props":831,"children":832},{"style":405},[833],{"type":42,"value":834},"\"\n",{"type":37,"tag":347,"props":836,"children":838},{"class":349,"line":837},7,[839],{"type":37,"tag":347,"props":840,"children":841},{"style":405},[842],{"type":42,"value":843},"  }],\n",{"type":37,"tag":347,"props":845,"children":847},{"class":349,"line":846},8,[848,852,857,861,865],{"type":37,"tag":347,"props":849,"children":850},{"style":405},[851],{"type":42,"value":641},{"type":37,"tag":347,"props":853,"children":854},{"style":644},[855],{"type":42,"value":856},"environments",{"type":37,"tag":347,"props":858,"children":859},{"style":405},[860],{"type":42,"value":652},{"type":37,"tag":347,"props":862,"children":863},{"style":405},[864],{"type":42,"value":657},{"type":37,"tag":347,"props":866,"children":867},{"style":405},[868],{"type":42,"value":701},{"type":37,"tag":347,"props":870,"children":872},{"class":349,"line":871},9,[873,877,881,885,889,893,897,901],{"type":37,"tag":347,"props":874,"children":875},{"style":405},[876],{"type":42,"value":709},{"type":37,"tag":347,"props":878,"children":879},{"style":354},[880],{"type":42,"value":812},{"type":37,"tag":347,"props":882,"children":883},{"style":405},[884],{"type":42,"value":652},{"type":37,"tag":347,"props":886,"children":887},{"style":405},[888],{"type":42,"value":657},{"type":37,"tag":347,"props":890,"children":891},{"style":405},[892],{"type":42,"value":662},{"type":37,"tag":347,"props":894,"children":895},{"style":360},[896],{"type":42,"value":829},{"type":37,"tag":347,"props":898,"children":899},{"style":405},[900],{"type":42,"value":652},{"type":37,"tag":347,"props":902,"children":903},{"style":405},[904],{"type":42,"value":676},{"type":37,"tag":347,"props":906,"children":908},{"class":349,"line":907},10,[909,913,918,922,926,930,934,939,943,947,951,956,960,965,969,973,977,981,986,990,995,999,1003,1007,1012,1016],{"type":37,"tag":347,"props":910,"children":911},{"style":405},[912],{"type":42,"value":709},{"type":37,"tag":347,"props":914,"children":915},{"style":354},[916],{"type":42,"value":917},"spec",{"type":37,"tag":347,"props":919,"children":920},{"style":405},[921],{"type":42,"value":652},{"type":37,"tag":347,"props":923,"children":924},{"style":405},[925],{"type":42,"value":657},{"type":37,"tag":347,"props":927,"children":928},{"style":405},[929],{"type":42,"value":764},{"type":37,"tag":347,"props":931,"children":932},{"style":405},[933],{"type":42,"value":652},{"type":37,"tag":347,"props":935,"children":936},{"style":771},[937],{"type":42,"value":938},"client",{"type":37,"tag":347,"props":940,"children":941},{"style":405},[942],{"type":42,"value":652},{"type":37,"tag":347,"props":944,"children":945},{"style":405},[946],{"type":42,"value":657},{"type":37,"tag":347,"props":948,"children":949},{"style":405},[950],{"type":42,"value":662},{"type":37,"tag":347,"props":952,"children":953},{"style":360},[954],{"type":42,"value":955},"4",{"type":37,"tag":347,"props":957,"children":958},{"style":405},[959],{"type":42,"value":652},{"type":37,"tag":347,"props":961,"children":962},{"style":405},[963],{"type":42,"value":964},",",{"type":37,"tag":347,"props":966,"children":967},{"style":405},[968],{"type":42,"value":662},{"type":37,"tag":347,"props":970,"children":971},{"style":771},[972],{"type":42,"value":597},{"type":37,"tag":347,"props":974,"children":975},{"style":405},[976],{"type":42,"value":652},{"type":37,"tag":347,"props":978,"children":979},{"style":405},[980],{"type":42,"value":657},{"type":37,"tag":347,"props":982,"children":983},{"style":405},[984],{"type":42,"value":985}," [",{"type":37,"tag":347,"props":987,"children":988},{"style":405},[989],{"type":42,"value":652},{"type":37,"tag":347,"props":991,"children":992},{"style":360},[993],{"type":42,"value":994},"scikit-learn==1.5.2",{"type":37,"tag":347,"props":996,"children":997},{"style":405},[998],{"type":42,"value":652},{"type":37,"tag":347,"props":1000,"children":1001},{"style":405},[1002],{"type":42,"value":964},{"type":37,"tag":347,"props":1004,"children":1005},{"style":405},[1006],{"type":42,"value":662},{"type":37,"tag":347,"props":1008,"children":1009},{"style":360},[1010],{"type":42,"value":1011},"mlflow==2.22.0",{"type":37,"tag":347,"props":1013,"children":1014},{"style":405},[1015],{"type":42,"value":652},{"type":37,"tag":347,"props":1017,"children":1018},{"style":405},[1019],{"type":42,"value":1020},"]}\n",{"type":37,"tag":347,"props":1022,"children":1024},{"class":349,"line":1023},11,[1025],{"type":37,"tag":347,"props":1026,"children":1027},{"style":405},[1028],{"type":42,"value":1029},"  }]\n",{"type":37,"tag":347,"props":1031,"children":1033},{"class":349,"line":1032},12,[1034],{"type":37,"tag":347,"props":1035,"children":1036},{"style":405},[1037],{"type":42,"value":1038},"}\n",{"type":37,"tag":45,"props":1040,"children":1041},{},[1042,1047,1049,1055,1057,1063,1064,1070,1072,1078,1080,1086,1088,1094,1096,1102,1103,1109,1110,1116,1118,1123],{"type":37,"tag":125,"props":1043,"children":1044},{},[1045],{"type":42,"value":1046},"3. Check state \u002F wait for completion.",{"type":42,"value":1048}," Life-cycle: ",{"type":37,"tag":51,"props":1050,"children":1052},{"className":1051},[],[1053],{"type":42,"value":1054},"PENDING",{"type":42,"value":1056}," → ",{"type":37,"tag":51,"props":1058,"children":1060},{"className":1059},[],[1061],{"type":42,"value":1062},"RUNNING",{"type":42,"value":1056},{"type":37,"tag":51,"props":1065,"children":1067},{"className":1066},[],[1068],{"type":42,"value":1069},"TERMINATED",{"type":42,"value":1071}," (or ",{"type":37,"tag":51,"props":1073,"children":1075},{"className":1074},[],[1076],{"type":42,"value":1077},"SKIPPED",{"type":42,"value":1079}," \u002F ",{"type":37,"tag":51,"props":1081,"children":1083},{"className":1082},[],[1084],{"type":42,"value":1085},"INTERNAL_ERROR",{"type":42,"value":1087},"). Only read ",{"type":37,"tag":51,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":42,"value":1093},".state.result_state",{"type":42,"value":1095}," (",{"type":37,"tag":51,"props":1097,"children":1099},{"className":1098},[],[1100],{"type":42,"value":1101},"SUCCESS",{"type":42,"value":1079},{"type":37,"tag":51,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":42,"value":1108},"FAILED",{"type":42,"value":1079},{"type":37,"tag":51,"props":1111,"children":1113},{"className":1112},[],[1114],{"type":42,"value":1115},"CANCELED",{"type":42,"value":1117},") once life-cycle is ",{"type":37,"tag":51,"props":1119,"children":1121},{"className":1120},[],[1122],{"type":42,"value":1069},{"type":42,"value":1124},".",{"type":37,"tag":45,"props":1126,"children":1127},{},[1128],{"type":37,"tag":51,"props":1129,"children":1131},{"className":1130},[],[1132],{"type":42,"value":1133},"databricks jobs get-run \u003CRUN_ID> | jq '{state: .state.life_cycle_state, result: .state.result_state, duration_ms: .execution_duration, url: .run_page_url, task_run_id: .tasks[0].run_id}'",{"type":37,"tag":45,"props":1135,"children":1136},{},[1137,1142,1143,1148,1149,1155,1157,1162,1164,1170,1172,1178,1180,1186,1188,1194],{"type":37,"tag":125,"props":1138,"children":1139},{},[1140],{"type":42,"value":1141},"4. Fetch the output \u002F error.",{"type":42,"value":527},{"type":37,"tag":125,"props":1144,"children":1145},{},[1146],{"type":42,"value":1147},"Gotcha:",{"type":42,"value":527},{"type":37,"tag":51,"props":1150,"children":1152},{"className":1151},[],[1153],{"type":42,"value":1154},"get-run-output",{"type":42,"value":1156}," takes the ",{"type":37,"tag":125,"props":1158,"children":1159},{},[1160],{"type":42,"value":1161},"task",{"type":42,"value":1163}," run_id (",{"type":37,"tag":51,"props":1165,"children":1167},{"className":1166},[],[1168],{"type":42,"value":1169},".tasks[0].run_id",{"type":42,"value":1171},"), NOT the parent ",{"type":37,"tag":51,"props":1173,"children":1175},{"className":1174},[],[1176],{"type":42,"value":1177},"run_id",{"type":42,"value":1179}," from submit. ",{"type":37,"tag":51,"props":1181,"children":1183},{"className":1182},[],[1184],{"type":42,"value":1185},"notebook_output.result",{"type":42,"value":1187}," is the string passed to ",{"type":37,"tag":51,"props":1189,"children":1191},{"className":1190},[],[1192],{"type":42,"value":1193},"dbutils.notebook.exit()",{"type":42,"value":1124},{"type":37,"tag":45,"props":1196,"children":1197},{},[1198],{"type":37,"tag":51,"props":1199,"children":1201},{"className":1200},[],[1202],{"type":42,"value":1203},"databricks jobs get-run-output \u003CTASK_RUN_ID> | jq '{result: .notebook_output.result, error, error_trace}'",{"type":37,"tag":45,"props":1205,"children":1206},{},[1207,1209,1215,1217,1223,1225,1230,1232,1238,1240,1246],{"type":42,"value":1208},"Always use ",{"type":37,"tag":51,"props":1210,"children":1212},{"className":1211},[],[1213],{"type":42,"value":1214},"dbutils.notebook.exit(\u003Cstring>)",{"type":42,"value":1216}," in the notebook — ",{"type":37,"tag":51,"props":1218,"children":1220},{"className":1219},[],[1221],{"type":42,"value":1222},"print()",{"type":42,"value":1224}," is not captured by ",{"type":37,"tag":51,"props":1226,"children":1228},{"className":1227},[],[1229],{"type":42,"value":1154},{"type":42,"value":1231},". For JSON results: ",{"type":37,"tag":51,"props":1233,"children":1235},{"className":1234},[],[1236],{"type":42,"value":1237},"dbutils.notebook.exit(json.dumps({...}))",{"type":42,"value":1239}," then parse ",{"type":37,"tag":51,"props":1241,"children":1243},{"className":1242},[],[1244],{"type":42,"value":1245},".notebook_output.result",{"type":42,"value":1247}," client-side.",{"type":37,"tag":254,"props":1249,"children":1251},{"id":1250},"interactive-cluster-reference",[1252,1254],{"type":42,"value":1253},"Interactive Cluster → ",{"type":37,"tag":87,"props":1255,"children":1256},{"href":109},[1257],{"type":42,"value":336},{"type":37,"tag":45,"props":1259,"children":1260},{},[1261,1266],{"type":37,"tag":125,"props":1262,"children":1263},{},[1264],{"type":42,"value":1265},"Avoid by default — prefer Serverless Job.",{"type":42,"value":1267}," Only use an interactive cluster when:",{"type":37,"tag":1269,"props":1270,"children":1271},"ul",{},[1272,1278,1283],{"type":37,"tag":1273,"props":1274,"children":1275},"li",{},[1276],{"type":42,"value":1277},"you have an existing classic cluster already running and available, or",{"type":37,"tag":1273,"props":1279,"children":1280},{},[1281],{"type":42,"value":1282},"you need live, stateful execution across multiple calls (debugging via an execution context), or",{"type":37,"tag":1273,"props":1284,"children":1285},{},[1286],{"type":42,"value":1287},"the user explicitly asks for it.",{"type":37,"tag":45,"props":1289,"children":1290},{},[1291,1293,1298],{"type":42,"value":1292},"Interactive clusters are ",{"type":37,"tag":125,"props":1294,"children":1295},{},[1296],{"type":42,"value":1297},"slow to start (3-8 min)",{"type":42,"value":1299}," and cost money while running. Don't start one implicitly.",{"type":37,"tag":59,"props":1301,"children":1303},{"id":1302},"cli-command-map",[1304],{"type":42,"value":1305},"CLI Command Map",{"type":37,"tag":45,"props":1307,"children":1308},{},[1309],{"type":42,"value":1310},"All compute lifecycle and code-execution actions go through the Databricks CLI. Headline commands:",{"type":37,"tag":66,"props":1312,"children":1313},{},[1314,1330],{"type":37,"tag":70,"props":1315,"children":1316},{},[1317],{"type":37,"tag":74,"props":1318,"children":1319},{},[1320,1325],{"type":37,"tag":78,"props":1321,"children":1322},{},[1323],{"type":42,"value":1324},"Action",{"type":37,"tag":78,"props":1326,"children":1327},{},[1328],{"type":42,"value":1329},"Command",{"type":37,"tag":114,"props":1331,"children":1332},{},[1333,1350,1376,1402,1419,1436,1453,1470,1487,1512,1536,1567],{"type":37,"tag":74,"props":1334,"children":1335},{},[1336,1341],{"type":37,"tag":121,"props":1337,"children":1338},{},[1339],{"type":42,"value":1340},"Upload local file as workspace notebook",{"type":37,"tag":121,"props":1342,"children":1343},{},[1344],{"type":37,"tag":51,"props":1345,"children":1347},{"className":1346},[],[1348],{"type":42,"value":1349},"databricks workspace import \u003CWORKSPACE_PATH> --file \u003CLOCAL> --format SOURCE --language PYTHON --overwrite",{"type":37,"tag":74,"props":1351,"children":1352},{},[1353,1358],{"type":37,"tag":121,"props":1354,"children":1355},{},[1356],{"type":42,"value":1357},"Run serverless code (upload + submit + wait)",{"type":37,"tag":121,"props":1359,"children":1360},{},[1361,1367,1369,1374],{"type":37,"tag":51,"props":1362,"children":1364},{"className":1363},[],[1365],{"type":42,"value":1366},"databricks jobs submit --json @submit.json",{"type":42,"value":1368}," (see Serverless Job section above; with ",{"type":37,"tag":51,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":42,"value":568},{"type":42,"value":1375}," for async)",{"type":37,"tag":74,"props":1377,"children":1378},{},[1379,1384],{"type":37,"tag":121,"props":1380,"children":1381},{},[1382],{"type":42,"value":1383},"Get run state \u002F wait",{"type":37,"tag":121,"props":1385,"children":1386},{},[1387,1393,1395,1401],{"type":37,"tag":51,"props":1388,"children":1390},{"className":1389},[],[1391],{"type":42,"value":1392},"databricks jobs get-run \u003CRUN_ID>",{"type":42,"value":1394}," (poll ",{"type":37,"tag":51,"props":1396,"children":1398},{"className":1397},[],[1399],{"type":42,"value":1400},".state.life_cycle_state",{"type":42,"value":418},{"type":37,"tag":74,"props":1403,"children":1404},{},[1405,1410],{"type":37,"tag":121,"props":1406,"children":1407},{},[1408],{"type":42,"value":1409},"Fetch run output",{"type":37,"tag":121,"props":1411,"children":1412},{},[1413],{"type":37,"tag":51,"props":1414,"children":1416},{"className":1415},[],[1417],{"type":42,"value":1418},"databricks jobs get-run-output \u003CTASK_RUN_ID>",{"type":37,"tag":74,"props":1420,"children":1421},{},[1422,1427],{"type":37,"tag":121,"props":1423,"children":1424},{},[1425],{"type":42,"value":1426},"List clusters",{"type":37,"tag":121,"props":1428,"children":1429},{},[1430],{"type":37,"tag":51,"props":1431,"children":1433},{"className":1432},[],[1434],{"type":42,"value":1435},"databricks clusters list --output json",{"type":37,"tag":74,"props":1437,"children":1438},{},[1439,1444],{"type":37,"tag":121,"props":1440,"children":1441},{},[1442],{"type":42,"value":1443},"Get cluster details",{"type":37,"tag":121,"props":1445,"children":1446},{},[1447],{"type":37,"tag":51,"props":1448,"children":1450},{"className":1449},[],[1451],{"type":42,"value":1452},"databricks clusters get \u003CCLUSTER_ID>",{"type":37,"tag":74,"props":1454,"children":1455},{},[1456,1461],{"type":37,"tag":121,"props":1457,"children":1458},{},[1459],{"type":42,"value":1460},"Start \u002F restart \u002F terminate cluster",{"type":37,"tag":121,"props":1462,"children":1463},{},[1464],{"type":37,"tag":51,"props":1465,"children":1467},{"className":1466},[],[1468],{"type":42,"value":1469},"databricks clusters start\u002Frestart\u002Fdelete \u003CCLUSTER_ID>",{"type":37,"tag":74,"props":1471,"children":1472},{},[1473,1478],{"type":37,"tag":121,"props":1474,"children":1475},{},[1476],{"type":42,"value":1477},"Permanently delete cluster",{"type":37,"tag":121,"props":1479,"children":1480},{},[1481],{"type":37,"tag":51,"props":1482,"children":1484},{"className":1483},[],[1485],{"type":42,"value":1486},"databricks clusters permanent-delete \u003CCLUSTER_ID>",{"type":37,"tag":74,"props":1488,"children":1489},{},[1490,1495],{"type":37,"tag":121,"props":1491,"children":1492},{},[1493],{"type":42,"value":1494},"Create cluster",{"type":37,"tag":121,"props":1496,"children":1497},{},[1498,1504,1506,1511],{"type":37,"tag":51,"props":1499,"children":1501},{"className":1500},[],[1502],{"type":42,"value":1503},"databricks clusters create --json '{...}'",{"type":42,"value":1505}," (see ",{"type":37,"tag":87,"props":1507,"children":1508},{"href":109},[1509],{"type":42,"value":1510},"3-interactive-cluster.md",{"type":42,"value":418},{"type":37,"tag":74,"props":1513,"children":1514},{},[1515,1520],{"type":37,"tag":121,"props":1516,"children":1517},{},[1518],{"type":42,"value":1519},"List node types \u002F Spark versions",{"type":37,"tag":121,"props":1521,"children":1522},{},[1523,1529,1530],{"type":37,"tag":51,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":42,"value":1528},"databricks clusters list-node-types",{"type":42,"value":1079},{"type":37,"tag":51,"props":1531,"children":1533},{"className":1532},[],[1534],{"type":42,"value":1535},"databricks clusters spark-versions",{"type":37,"tag":74,"props":1537,"children":1538},{},[1539,1544],{"type":37,"tag":121,"props":1540,"children":1541},{},[1542],{"type":42,"value":1543},"Execute code on a running cluster",{"type":37,"tag":121,"props":1545,"children":1546},{},[1547,1553,1555,1561,1562,1566],{"type":37,"tag":51,"props":1548,"children":1550},{"className":1549},[],[1551],{"type":42,"value":1552},"databricks api post \u002Fapi\u002F1.2\u002Fcontexts\u002Fcreate",{"type":42,"value":1554}," + ",{"type":37,"tag":51,"props":1556,"children":1558},{"className":1557},[],[1559],{"type":42,"value":1560},"databricks api post \u002Fapi\u002F1.2\u002Fcommands\u002Fexecute",{"type":42,"value":1505},{"type":37,"tag":87,"props":1563,"children":1564},{"href":109},[1565],{"type":42,"value":1510},{"type":42,"value":418},{"type":37,"tag":74,"props":1568,"children":1569},{},[1570,1575],{"type":37,"tag":121,"props":1571,"children":1572},{},[1573],{"type":42,"value":1574},"SQL warehouses",{"type":37,"tag":121,"props":1576,"children":1577},{},[1578,1584],{"type":37,"tag":51,"props":1579,"children":1581},{"className":1580},[],[1582],{"type":42,"value":1583},"databricks warehouses create\u002Flist\u002Fget\u002Fstart\u002Fstop\u002Fedit\u002Fdelete",{"type":42,"value":1585}," (see SQL Warehouses below)",{"type":37,"tag":254,"props":1587,"children":1589},{"id":1588},"sql-warehouses",[1590],{"type":42,"value":1591},"SQL Warehouses",{"type":37,"tag":45,"props":1593,"children":1594},{},[1595,1597,1603,1605,1611,1613,1619],{"type":42,"value":1596},"All ",{"type":37,"tag":51,"props":1598,"children":1600},{"className":1599},[],[1601],{"type":42,"value":1602},"ID",{"type":42,"value":1604},"-taking commands use positional arg (no ",{"type":37,"tag":51,"props":1606,"children":1608},{"className":1607},[],[1609],{"type":42,"value":1610},"--id",{"type":42,"value":1612}," flag). Use ",{"type":37,"tag":51,"props":1614,"children":1616},{"className":1615},[],[1617],{"type":42,"value":1618},"databricks warehouses list",{"type":42,"value":1620}," to find an ID.",{"type":37,"tag":301,"props":1622,"children":1624},{"className":339,"code":1623,"language":341,"meta":309,"style":309},"# Create a serverless SQL warehouse. min_num_clusters + max_num_clusters are REQUIRED\n# (the server rejects the default 0). Keep the aidevkit_project tag for resource tracking.\ndatabricks warehouses create --json '{\n  \"name\": \"my-warehouse\",\n  \"cluster_size\": \"Small\",\n  \"enable_serverless_compute\": true,\n  \"auto_stop_mins\": 10,\n  \"min_num_clusters\": 1,\n  \"max_num_clusters\": 1,\n  \"tags\": {\"custom_tags\": [{\"key\": \"aidevkit_project\", \"value\": \"ai-dev-kit\"}]}\n}'\n\n# List \u002F find — trim to id, name, state with jq\ndatabricks warehouses list -o json | jq '.[] | {id, name, state, size: .cluster_size}'\n\n# Find by name\ndatabricks warehouses list -o json | jq '.[] | select(.name == \"my-warehouse\")'\n\n# Get one warehouse's full config\ndatabricks warehouses get \u003CWAREHOUSE_ID>\n\n# Start \u002F stop (both are LROs; add --no-wait to return immediately)\ndatabricks warehouses start \u003CWAREHOUSE_ID>\ndatabricks warehouses stop  \u003CWAREHOUSE_ID>\n\n# Resize \u002F reconfigure — pass the FULL desired config (omitted fields revert to defaults,\n# so always re-state min_num_clusters\u002Fmax_num_clusters). Use --no-wait if the warehouse\n# is STOPPED, otherwise edit blocks trying to reach RUNNING and errors out (the mutation\n# itself still applies). When the warehouse is already RUNNING, --no-wait is optional.\ndatabricks warehouses edit \u003CWAREHOUSE_ID> --no-wait --json '{\n  \"name\": \"my-warehouse\",\n  \"cluster_size\": \"Medium\",\n  \"enable_serverless_compute\": true,\n  \"auto_stop_mins\": 15,\n  \"min_num_clusters\": 1,\n  \"max_num_clusters\": 1\n}'\n\n# Delete (irreversible)\ndatabricks warehouses delete \u003CWAREHOUSE_ID>\n",[1625],{"type":37,"tag":51,"props":1626,"children":1627},{"__ignoreMap":309},[1628,1637,1645,1676,1684,1692,1700,1708,1716,1724,1732,1745,1752,1761,1811,1819,1828,1873,1881,1890,1928,1936,1945,1978,2012,2020,2029,2038,2047,2056,2107,2115,2124,2132,2141,2149,2158,2170,2178,2187],{"type":37,"tag":347,"props":1629,"children":1630},{"class":349,"line":350},[1631],{"type":37,"tag":347,"props":1632,"children":1634},{"style":1633},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1635],{"type":42,"value":1636},"# Create a serverless SQL warehouse. min_num_clusters + max_num_clusters are REQUIRED\n",{"type":37,"tag":347,"props":1638,"children":1639},{"class":349,"line":376},[1640],{"type":37,"tag":347,"props":1641,"children":1642},{"style":1633},[1643],{"type":42,"value":1644},"# (the server rejects the default 0). Keep the aidevkit_project tag for resource tracking.\n",{"type":37,"tag":347,"props":1646,"children":1647},{"class":349,"line":386},[1648,1652,1657,1662,1667,1672],{"type":37,"tag":347,"props":1649,"children":1650},{"style":354},[1651],{"type":42,"value":8},{"type":37,"tag":347,"props":1653,"children":1654},{"style":360},[1655],{"type":42,"value":1656}," warehouses",{"type":37,"tag":347,"props":1658,"children":1659},{"style":360},[1660],{"type":42,"value":1661}," create",{"type":37,"tag":347,"props":1663,"children":1664},{"style":360},[1665],{"type":42,"value":1666}," --json",{"type":37,"tag":347,"props":1668,"children":1669},{"style":405},[1670],{"type":42,"value":1671}," '",{"type":37,"tag":347,"props":1673,"children":1674},{"style":360},[1675],{"type":42,"value":633},{"type":37,"tag":347,"props":1677,"children":1678},{"class":349,"line":449},[1679],{"type":37,"tag":347,"props":1680,"children":1681},{"style":360},[1682],{"type":42,"value":1683},"  \"name\": \"my-warehouse\",\n",{"type":37,"tag":347,"props":1685,"children":1686},{"class":349,"line":459},[1687],{"type":37,"tag":347,"props":1688,"children":1689},{"style":360},[1690],{"type":42,"value":1691},"  \"cluster_size\": \"Small\",\n",{"type":37,"tag":347,"props":1693,"children":1694},{"class":349,"line":467},[1695],{"type":37,"tag":347,"props":1696,"children":1697},{"style":360},[1698],{"type":42,"value":1699},"  \"enable_serverless_compute\": true,\n",{"type":37,"tag":347,"props":1701,"children":1702},{"class":349,"line":837},[1703],{"type":37,"tag":347,"props":1704,"children":1705},{"style":360},[1706],{"type":42,"value":1707},"  \"auto_stop_mins\": 10,\n",{"type":37,"tag":347,"props":1709,"children":1710},{"class":349,"line":846},[1711],{"type":37,"tag":347,"props":1712,"children":1713},{"style":360},[1714],{"type":42,"value":1715},"  \"min_num_clusters\": 1,\n",{"type":37,"tag":347,"props":1717,"children":1718},{"class":349,"line":871},[1719],{"type":37,"tag":347,"props":1720,"children":1721},{"style":360},[1722],{"type":42,"value":1723},"  \"max_num_clusters\": 1,\n",{"type":37,"tag":347,"props":1725,"children":1726},{"class":349,"line":907},[1727],{"type":37,"tag":347,"props":1728,"children":1729},{"style":360},[1730],{"type":42,"value":1731},"  \"tags\": {\"custom_tags\": [{\"key\": \"aidevkit_project\", \"value\": \"ai-dev-kit\"}]}\n",{"type":37,"tag":347,"props":1733,"children":1734},{"class":349,"line":1023},[1735,1740],{"type":37,"tag":347,"props":1736,"children":1737},{"style":360},[1738],{"type":42,"value":1739},"}",{"type":37,"tag":347,"props":1741,"children":1742},{"style":405},[1743],{"type":42,"value":1744},"'\n",{"type":37,"tag":347,"props":1746,"children":1747},{"class":349,"line":1032},[1748],{"type":37,"tag":347,"props":1749,"children":1750},{"emptyLinePlaceholder":453},[1751],{"type":42,"value":456},{"type":37,"tag":347,"props":1753,"children":1755},{"class":349,"line":1754},13,[1756],{"type":37,"tag":347,"props":1757,"children":1758},{"style":1633},[1759],{"type":42,"value":1760},"# List \u002F find — trim to id, name, state with jq\n",{"type":37,"tag":347,"props":1762,"children":1764},{"class":349,"line":1763},14,[1765,1769,1773,1778,1783,1788,1793,1798,1802,1807],{"type":37,"tag":347,"props":1766,"children":1767},{"style":354},[1768],{"type":42,"value":8},{"type":37,"tag":347,"props":1770,"children":1771},{"style":360},[1772],{"type":42,"value":1656},{"type":37,"tag":347,"props":1774,"children":1775},{"style":360},[1776],{"type":42,"value":1777}," list",{"type":37,"tag":347,"props":1779,"children":1780},{"style":360},[1781],{"type":42,"value":1782}," -o",{"type":37,"tag":347,"props":1784,"children":1785},{"style":360},[1786],{"type":42,"value":1787}," json",{"type":37,"tag":347,"props":1789,"children":1790},{"style":405},[1791],{"type":42,"value":1792}," |",{"type":37,"tag":347,"props":1794,"children":1795},{"style":354},[1796],{"type":42,"value":1797}," jq",{"type":37,"tag":347,"props":1799,"children":1800},{"style":405},[1801],{"type":42,"value":1671},{"type":37,"tag":347,"props":1803,"children":1804},{"style":360},[1805],{"type":42,"value":1806},".[] | {id, name, state, size: .cluster_size}",{"type":37,"tag":347,"props":1808,"children":1809},{"style":405},[1810],{"type":42,"value":1744},{"type":37,"tag":347,"props":1812,"children":1814},{"class":349,"line":1813},15,[1815],{"type":37,"tag":347,"props":1816,"children":1817},{"emptyLinePlaceholder":453},[1818],{"type":42,"value":456},{"type":37,"tag":347,"props":1820,"children":1822},{"class":349,"line":1821},16,[1823],{"type":37,"tag":347,"props":1824,"children":1825},{"style":1633},[1826],{"type":42,"value":1827},"# Find by name\n",{"type":37,"tag":347,"props":1829,"children":1831},{"class":349,"line":1830},17,[1832,1836,1840,1844,1848,1852,1856,1860,1864,1869],{"type":37,"tag":347,"props":1833,"children":1834},{"style":354},[1835],{"type":42,"value":8},{"type":37,"tag":347,"props":1837,"children":1838},{"style":360},[1839],{"type":42,"value":1656},{"type":37,"tag":347,"props":1841,"children":1842},{"style":360},[1843],{"type":42,"value":1777},{"type":37,"tag":347,"props":1845,"children":1846},{"style":360},[1847],{"type":42,"value":1782},{"type":37,"tag":347,"props":1849,"children":1850},{"style":360},[1851],{"type":42,"value":1787},{"type":37,"tag":347,"props":1853,"children":1854},{"style":405},[1855],{"type":42,"value":1792},{"type":37,"tag":347,"props":1857,"children":1858},{"style":354},[1859],{"type":42,"value":1797},{"type":37,"tag":347,"props":1861,"children":1862},{"style":405},[1863],{"type":42,"value":1671},{"type":37,"tag":347,"props":1865,"children":1866},{"style":360},[1867],{"type":42,"value":1868},".[] | select(.name == \"my-warehouse\")",{"type":37,"tag":347,"props":1870,"children":1871},{"style":405},[1872],{"type":42,"value":1744},{"type":37,"tag":347,"props":1874,"children":1876},{"class":349,"line":1875},18,[1877],{"type":37,"tag":347,"props":1878,"children":1879},{"emptyLinePlaceholder":453},[1880],{"type":42,"value":456},{"type":37,"tag":347,"props":1882,"children":1884},{"class":349,"line":1883},19,[1885],{"type":37,"tag":347,"props":1886,"children":1887},{"style":1633},[1888],{"type":42,"value":1889},"# Get one warehouse's full config\n",{"type":37,"tag":347,"props":1891,"children":1893},{"class":349,"line":1892},20,[1894,1898,1902,1907,1912,1917,1923],{"type":37,"tag":347,"props":1895,"children":1896},{"style":354},[1897],{"type":42,"value":8},{"type":37,"tag":347,"props":1899,"children":1900},{"style":360},[1901],{"type":42,"value":1656},{"type":37,"tag":347,"props":1903,"children":1904},{"style":360},[1905],{"type":42,"value":1906}," get",{"type":37,"tag":347,"props":1908,"children":1909},{"style":405},[1910],{"type":42,"value":1911}," \u003C",{"type":37,"tag":347,"props":1913,"children":1914},{"style":360},[1915],{"type":42,"value":1916},"WAREHOUSE_I",{"type":37,"tag":347,"props":1918,"children":1920},{"style":1919},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1921],{"type":42,"value":1922},"D",{"type":37,"tag":347,"props":1924,"children":1925},{"style":405},[1926],{"type":42,"value":1927},">\n",{"type":37,"tag":347,"props":1929,"children":1931},{"class":349,"line":1930},21,[1932],{"type":37,"tag":347,"props":1933,"children":1934},{"emptyLinePlaceholder":453},[1935],{"type":42,"value":456},{"type":37,"tag":347,"props":1937,"children":1939},{"class":349,"line":1938},22,[1940],{"type":37,"tag":347,"props":1941,"children":1942},{"style":1633},[1943],{"type":42,"value":1944},"# Start \u002F stop (both are LROs; add --no-wait to return immediately)\n",{"type":37,"tag":347,"props":1946,"children":1948},{"class":349,"line":1947},23,[1949,1953,1957,1962,1966,1970,1974],{"type":37,"tag":347,"props":1950,"children":1951},{"style":354},[1952],{"type":42,"value":8},{"type":37,"tag":347,"props":1954,"children":1955},{"style":360},[1956],{"type":42,"value":1656},{"type":37,"tag":347,"props":1958,"children":1959},{"style":360},[1960],{"type":42,"value":1961}," start",{"type":37,"tag":347,"props":1963,"children":1964},{"style":405},[1965],{"type":42,"value":1911},{"type":37,"tag":347,"props":1967,"children":1968},{"style":360},[1969],{"type":42,"value":1916},{"type":37,"tag":347,"props":1971,"children":1972},{"style":1919},[1973],{"type":42,"value":1922},{"type":37,"tag":347,"props":1975,"children":1976},{"style":405},[1977],{"type":42,"value":1927},{"type":37,"tag":347,"props":1979,"children":1981},{"class":349,"line":1980},24,[1982,1986,1990,1995,2000,2004,2008],{"type":37,"tag":347,"props":1983,"children":1984},{"style":354},[1985],{"type":42,"value":8},{"type":37,"tag":347,"props":1987,"children":1988},{"style":360},[1989],{"type":42,"value":1656},{"type":37,"tag":347,"props":1991,"children":1992},{"style":360},[1993],{"type":42,"value":1994}," stop",{"type":37,"tag":347,"props":1996,"children":1997},{"style":405},[1998],{"type":42,"value":1999},"  \u003C",{"type":37,"tag":347,"props":2001,"children":2002},{"style":360},[2003],{"type":42,"value":1916},{"type":37,"tag":347,"props":2005,"children":2006},{"style":1919},[2007],{"type":42,"value":1922},{"type":37,"tag":347,"props":2009,"children":2010},{"style":405},[2011],{"type":42,"value":1927},{"type":37,"tag":347,"props":2013,"children":2015},{"class":349,"line":2014},25,[2016],{"type":37,"tag":347,"props":2017,"children":2018},{"emptyLinePlaceholder":453},[2019],{"type":42,"value":456},{"type":37,"tag":347,"props":2021,"children":2023},{"class":349,"line":2022},26,[2024],{"type":37,"tag":347,"props":2025,"children":2026},{"style":1633},[2027],{"type":42,"value":2028},"# Resize \u002F reconfigure — pass the FULL desired config (omitted fields revert to defaults,\n",{"type":37,"tag":347,"props":2030,"children":2032},{"class":349,"line":2031},27,[2033],{"type":37,"tag":347,"props":2034,"children":2035},{"style":1633},[2036],{"type":42,"value":2037},"# so always re-state min_num_clusters\u002Fmax_num_clusters). Use --no-wait if the warehouse\n",{"type":37,"tag":347,"props":2039,"children":2041},{"class":349,"line":2040},28,[2042],{"type":37,"tag":347,"props":2043,"children":2044},{"style":1633},[2045],{"type":42,"value":2046},"# is STOPPED, otherwise edit blocks trying to reach RUNNING and errors out (the mutation\n",{"type":37,"tag":347,"props":2048,"children":2050},{"class":349,"line":2049},29,[2051],{"type":37,"tag":347,"props":2052,"children":2053},{"style":1633},[2054],{"type":42,"value":2055},"# itself still applies). When the warehouse is already RUNNING, --no-wait is optional.\n",{"type":37,"tag":347,"props":2057,"children":2059},{"class":349,"line":2058},30,[2060,2064,2068,2073,2077,2081,2085,2090,2095,2099,2103],{"type":37,"tag":347,"props":2061,"children":2062},{"style":354},[2063],{"type":42,"value":8},{"type":37,"tag":347,"props":2065,"children":2066},{"style":360},[2067],{"type":42,"value":1656},{"type":37,"tag":347,"props":2069,"children":2070},{"style":360},[2071],{"type":42,"value":2072}," edit",{"type":37,"tag":347,"props":2074,"children":2075},{"style":405},[2076],{"type":42,"value":1911},{"type":37,"tag":347,"props":2078,"children":2079},{"style":360},[2080],{"type":42,"value":1916},{"type":37,"tag":347,"props":2082,"children":2083},{"style":1919},[2084],{"type":42,"value":1922},{"type":37,"tag":347,"props":2086,"children":2087},{"style":405},[2088],{"type":42,"value":2089},">",{"type":37,"tag":347,"props":2091,"children":2092},{"style":360},[2093],{"type":42,"value":2094}," --no-wait",{"type":37,"tag":347,"props":2096,"children":2097},{"style":360},[2098],{"type":42,"value":1666},{"type":37,"tag":347,"props":2100,"children":2101},{"style":405},[2102],{"type":42,"value":1671},{"type":37,"tag":347,"props":2104,"children":2105},{"style":360},[2106],{"type":42,"value":633},{"type":37,"tag":347,"props":2108,"children":2110},{"class":349,"line":2109},31,[2111],{"type":37,"tag":347,"props":2112,"children":2113},{"style":360},[2114],{"type":42,"value":1683},{"type":37,"tag":347,"props":2116,"children":2118},{"class":349,"line":2117},32,[2119],{"type":37,"tag":347,"props":2120,"children":2121},{"style":360},[2122],{"type":42,"value":2123},"  \"cluster_size\": \"Medium\",\n",{"type":37,"tag":347,"props":2125,"children":2127},{"class":349,"line":2126},33,[2128],{"type":37,"tag":347,"props":2129,"children":2130},{"style":360},[2131],{"type":42,"value":1699},{"type":37,"tag":347,"props":2133,"children":2135},{"class":349,"line":2134},34,[2136],{"type":37,"tag":347,"props":2137,"children":2138},{"style":360},[2139],{"type":42,"value":2140},"  \"auto_stop_mins\": 15,\n",{"type":37,"tag":347,"props":2142,"children":2144},{"class":349,"line":2143},35,[2145],{"type":37,"tag":347,"props":2146,"children":2147},{"style":360},[2148],{"type":42,"value":1715},{"type":37,"tag":347,"props":2150,"children":2152},{"class":349,"line":2151},36,[2153],{"type":37,"tag":347,"props":2154,"children":2155},{"style":360},[2156],{"type":42,"value":2157},"  \"max_num_clusters\": 1\n",{"type":37,"tag":347,"props":2159,"children":2161},{"class":349,"line":2160},37,[2162,2166],{"type":37,"tag":347,"props":2163,"children":2164},{"style":360},[2165],{"type":42,"value":1739},{"type":37,"tag":347,"props":2167,"children":2168},{"style":405},[2169],{"type":42,"value":1744},{"type":37,"tag":347,"props":2171,"children":2173},{"class":349,"line":2172},38,[2174],{"type":37,"tag":347,"props":2175,"children":2176},{"emptyLinePlaceholder":453},[2177],{"type":42,"value":456},{"type":37,"tag":347,"props":2179,"children":2181},{"class":349,"line":2180},39,[2182],{"type":37,"tag":347,"props":2183,"children":2184},{"style":1633},[2185],{"type":42,"value":2186},"# Delete (irreversible)\n",{"type":37,"tag":347,"props":2188,"children":2190},{"class":349,"line":2189},40,[2191,2195,2199,2204,2208,2212,2216],{"type":37,"tag":347,"props":2192,"children":2193},{"style":354},[2194],{"type":42,"value":8},{"type":37,"tag":347,"props":2196,"children":2197},{"style":360},[2198],{"type":42,"value":1656},{"type":37,"tag":347,"props":2200,"children":2201},{"style":360},[2202],{"type":42,"value":2203}," delete",{"type":37,"tag":347,"props":2205,"children":2206},{"style":405},[2207],{"type":42,"value":1911},{"type":37,"tag":347,"props":2209,"children":2210},{"style":360},[2211],{"type":42,"value":1916},{"type":37,"tag":347,"props":2213,"children":2214},{"style":1919},[2215],{"type":42,"value":1922},{"type":37,"tag":347,"props":2217,"children":2218},{"style":405},[2219],{"type":42,"value":1927},{"type":37,"tag":45,"props":2221,"children":2222},{},[2223,2228,2229,2235,2237,2243,2244,2250,2251,2257,2258,2264,2265,2271,2272,2278,2279,2285,2286,2292,2294,2299,2301,2307,2309,2315],{"type":37,"tag":125,"props":2224,"children":2225},{},[2226],{"type":42,"value":2227},"Sizes:",{"type":42,"value":527},{"type":37,"tag":51,"props":2230,"children":2232},{"className":2231},[],[2233],{"type":42,"value":2234},"2X-Small",{"type":42,"value":2236},", ",{"type":37,"tag":51,"props":2238,"children":2240},{"className":2239},[],[2241],{"type":42,"value":2242},"X-Small",{"type":42,"value":2236},{"type":37,"tag":51,"props":2245,"children":2247},{"className":2246},[],[2248],{"type":42,"value":2249},"Small",{"type":42,"value":2236},{"type":37,"tag":51,"props":2252,"children":2254},{"className":2253},[],[2255],{"type":42,"value":2256},"Medium",{"type":42,"value":2236},{"type":37,"tag":51,"props":2259,"children":2261},{"className":2260},[],[2262],{"type":42,"value":2263},"Large",{"type":42,"value":2236},{"type":37,"tag":51,"props":2266,"children":2268},{"className":2267},[],[2269],{"type":42,"value":2270},"X-Large",{"type":42,"value":2236},{"type":37,"tag":51,"props":2273,"children":2275},{"className":2274},[],[2276],{"type":42,"value":2277},"2X-Large",{"type":42,"value":2236},{"type":37,"tag":51,"props":2280,"children":2282},{"className":2281},[],[2283],{"type":42,"value":2284},"3X-Large",{"type":42,"value":2236},{"type":37,"tag":51,"props":2287,"children":2289},{"className":2288},[],[2290],{"type":42,"value":2291},"4X-Large",{"type":42,"value":2293},". ",{"type":37,"tag":125,"props":2295,"children":2296},{},[2297],{"type":42,"value":2298},"Types:",{"type":42,"value":2300}," set ",{"type":37,"tag":51,"props":2302,"children":2304},{"className":2303},[],[2305],{"type":42,"value":2306},"\"warehouse_type\": \"PRO\"",{"type":42,"value":2308}," (default) or ",{"type":37,"tag":51,"props":2310,"children":2312},{"className":2311},[],[2313],{"type":42,"value":2314},"\"CLASSIC\"",{"type":42,"value":2316}," in the JSON body.",{"type":37,"tag":59,"props":2318,"children":2320},{"id":2319},"related-skills",[2321],{"type":42,"value":2322},"Related Skills",{"type":37,"tag":1269,"props":2324,"children":2325},{},[2326,2340,2350],{"type":37,"tag":1273,"props":2327,"children":2328},{},[2329,2338],{"type":37,"tag":125,"props":2330,"children":2331},{},[2332],{"type":37,"tag":87,"props":2333,"children":2335},{"href":2334},"..\u002Fdatabricks-synthetic-data-gen\u002FSKILL.md",[2336],{"type":42,"value":2337},"databricks-synthetic-data-gen",{"type":42,"value":2339}," — Data generation using Spark + Faker",{"type":37,"tag":1273,"props":2341,"children":2342},{},[2343,2348],{"type":37,"tag":125,"props":2344,"children":2345},{},[2346],{"type":42,"value":2347},"databricks-jobs",{"type":42,"value":2349}," — Production job orchestration",{"type":37,"tag":1273,"props":2351,"children":2352},{},[2353,2362],{"type":37,"tag":125,"props":2354,"children":2355},{},[2356],{"type":37,"tag":87,"props":2357,"children":2359},{"href":2358},"..\u002Fdatabricks-dbsql\u002FSKILL.md",[2360],{"type":42,"value":2361},"databricks-dbsql",{"type":42,"value":2363}," — SQL warehouse and AI functions",{"type":37,"tag":2365,"props":2366,"children":2367},"style",{},[2368],{"type":42,"value":2369},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2371,"total":2109},[2372,2389,2403,2420,2437,2457,2468,2490,2501,2517,2530,2542],{"slug":2373,"name":2373,"fn":2374,"description":2375,"org":2376,"tags":2377,"stars":17,"repoUrl":18,"updatedAt":2388},"databricks-agent-bricks","create Databricks Agent Bricks","Create Agent Bricks: Knowledge Assistants (KA) for document Q&A and Supervisor Agents for multi-agent orchestration (MAS).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2378,2381,2382,2385],{"name":2379,"slug":2380,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":2383,"slug":2384,"type":15},"Knowledge Management","knowledge-management",{"name":2386,"slug":2387,"type":15},"Multi-Agent","multi-agent","2026-07-15T05:41:38.548954",{"slug":2390,"name":2390,"fn":2391,"description":2392,"org":2393,"tags":2394,"stars":17,"repoUrl":18,"updatedAt":2402},"databricks-ai-functions","use Databricks built-in AI functions","Use Databricks built-in AI Functions (ai_classify, ai_extract, ai_summarize, ai_mask, ai_translate, ai_fix_grammar, ai_gen, ai_analyze_sentiment, ai_similarity, ai_parse_document, ai_prep_search, ai_query, ai_forecast) to add AI capabilities directly to SQL and PySpark pipelines without managing model endpoints. Also covers document parsing and building custom RAG pipelines (parse → prep_search → index → query).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2395,2398,2399],{"name":2396,"slug":2397,"type":15},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":15},{"name":2400,"slug":2401,"type":15},"LLM","llm","2026-07-31T05:53:33.562077",{"slug":2404,"name":2404,"fn":2405,"description":2406,"org":2407,"tags":2408,"stars":17,"repoUrl":18,"updatedAt":2419},"databricks-ai-runtime","submit and manage Databricks GPU workloads","Databricks AI Runtime (`air`) CLI — the command-line tool for submitting and managing GPU training workloads on Databricks serverless compute. Use for: running `air` workloads, custom Docker image setup, environment configuration, and troubleshooting `air` jobs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2409,2412,2413,2416],{"name":2410,"slug":2411,"type":15},"CLI","cli",{"name":9,"slug":8,"type":15},{"name":2414,"slug":2415,"type":15},"Docker","docker",{"name":2417,"slug":2418,"type":15},"Engineering","engineering","2026-07-12T08:04:55.843982",{"slug":2421,"name":2421,"fn":2422,"description":2423,"org":2424,"tags":2425,"stars":17,"repoUrl":18,"updatedAt":2436},"databricks-aibi-dashboards","create Databricks AI\u002FBI dashboards","Create Databricks AI\u002FBI dashboards. Must use when creating, updating, or deploying Lakeview dashboards as Databricks Dashboard have a unique json structure. CRITICAL: You MUST test ALL SQL queries via CLI BEFORE deploying. Follow guidelines strictly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2426,2429,2432,2435],{"name":2427,"slug":2428,"type":15},"Analytics","analytics",{"name":2430,"slug":2431,"type":15},"Dashboards","dashboards",{"name":2433,"slug":2434,"type":15},"Data Visualization","data-visualization",{"name":9,"slug":8,"type":15},"2026-07-12T08:04:25.314591",{"slug":2438,"name":2438,"fn":2439,"description":2440,"org":2441,"tags":2442,"stars":17,"repoUrl":18,"updatedAt":2456},"databricks-app-design","design UX for Databricks AppKit applications","Design the UX of custom-code Databricks Apps (AppKit\u002FReact) data screens — KPI\u002Foverview pages, reports, charts, tables, and Genie\u002Fchat data assistants — mapped to concrete AppKit components. Use when BUILDING or reviewing the UI of an AppKit\u002FReact app that displays data or answers data questions: choosing genre, layout, charts, KPIs, semantic color, required states (loading\u002Fempty\u002Ferror), IBCS notation, and AI-result trust (showing generated SQL\u002Fsources for Genie\u002Fchat). A plain \"create a dashboard\" request means a managed AI\u002FBI (Lakeview) dashboard → use databricks-aibi-dashboards, NOT this skill. Also NOT for non-data frontend (forms, settings, auth, marketing) or scaffolding\u002Fbuild\u002Fdeploy (→ databricks-apps). Complements databricks-apps; use it alongside whenever a custom app has a chart, table, KPI, report, or Genie\u002Fchat\u002FAI surface.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2443,2444,2447,2450,2453],{"name":9,"slug":8,"type":15},{"name":2445,"slug":2446,"type":15},"Design","design",{"name":2448,"slug":2449,"type":15},"Frontend","frontend",{"name":2451,"slug":2452,"type":15},"React","react",{"name":2454,"slug":2455,"type":15},"UI Components","ui-components","2026-07-12T08:04:02.02398",{"slug":2458,"name":2458,"fn":2459,"description":2460,"org":2461,"tags":2462,"stars":17,"repoUrl":18,"updatedAt":2467},"databricks-apps","build applications on Databricks Apps","Build apps on Databricks Apps platform. Use when asked to create data apps, analytics tools, or custom interactive visualizations. A plain \"create a dashboard\" request means a managed AI\u002FBI (Lakeview) dashboard → use databricks-aibi-dashboards, not this skill. Evaluates data access patterns (analytics vs Lakebase synced tables) before scaffolding. Invoke BEFORE starting implementation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2463,2464,2465,2466],{"name":2427,"slug":2428,"type":15},{"name":2430,"slug":2431,"type":15},{"name":2396,"slug":2397,"type":15},{"name":9,"slug":8,"type":15},"2026-07-12T08:03:59.061458",{"slug":2469,"name":2469,"fn":2470,"description":2471,"org":2472,"tags":2473,"stars":17,"repoUrl":18,"updatedAt":2489},"databricks-apps-python","build Python backends for Databricks Apps","Python backend for Databricks Apps — FastAPI (default), Flask, Dash, Streamlit, Gradio, Reflex. **Default for a new Databricks App is `databricks-apps` (AppKit — Node\u002FTypeScript\u002FReact) — reach for it first.** Use this skill only when the user asks for a Python backend, extends an existing Python app, or the team is Python-only. Covers OAuth auth, app resources, SQL warehouse and Lakebase connectivity, foundation-model \u002F Vector Search \u002F model-serving APIs (via `databricks-python-sdk`), and deployment via CLI or DABs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2474,2475,2478,2481,2484,2486],{"name":9,"slug":8,"type":15},{"name":2476,"slug":2477,"type":15},"FastAPI","fastapi",{"name":2479,"slug":2480,"type":15},"Flask","flask",{"name":2482,"slug":2483,"type":15},"Gradio","gradio",{"name":2485,"slug":473,"type":15},"Python",{"name":2487,"slug":2488,"type":15},"Streamlit","streamlit","2026-07-12T08:04:10.970845",{"slug":32,"name":32,"fn":2491,"description":2492,"org":2493,"tags":2494,"stars":17,"repoUrl":18,"updatedAt":2500},"configure Databricks CLI and authentication","Databricks CLI operations and the parent\u002Fentry-point skill for Databricks CLI use: authentication, profile selection, and bundles. Load this first for CLI, auth, profile, and bundle tasks, then load the matching product skill. For finding or exploring data, answering questions about the data, or generating SQL, load the databricks-data-discovery skill (it routes to Genie One). Contains up-to-date guidelines for Databricks-related CLI tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2495,2498,2499],{"name":2496,"slug":2497,"type":15},"Authentication","authentication",{"name":2410,"slug":2411,"type":15},{"name":9,"slug":8,"type":15},"2026-07-18T05:11:05.45506",{"slug":274,"name":274,"fn":2502,"description":2503,"org":2504,"tags":2505,"stars":17,"repoUrl":18,"updatedAt":2516},"manage Databricks Declarative Automation Bundles","Create, configure, validate, deploy, run, and manage Declarative Automation Bundles (DABs, formerly Databricks Asset Bundles). Use when working with Databricks resources via DABs including dashboards, jobs, pipelines, alerts, volumes, and apps.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2506,2509,2512,2513],{"name":2507,"slug":2508,"type":15},"Automation","automation",{"name":2510,"slug":2511,"type":15},"Configuration","configuration",{"name":9,"slug":8,"type":15},{"name":2514,"slug":2515,"type":15},"Deployment","deployment","2026-07-15T05:41:35.930355",{"slug":2518,"name":2518,"fn":2519,"description":2520,"org":2521,"tags":2522,"stars":17,"repoUrl":18,"updatedAt":2529},"databricks-data-discovery","discover and query Databricks data","Discover, explore, and query Databricks data via Genie — the CLI equivalent of the Genie One MCP. MUST be invoked whenever the user asks to find or locate data ('what tables are in X', 'where does X live', 'which catalog\u002Fschema has Y'), answer a natural-language question about the data, or write a SQL query.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2523,2524,2525,2526],{"name":2396,"slug":2397,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":2527,"slug":2528,"type":15},"SQL","sql","2026-07-31T05:53:32.561877",{"slug":2361,"name":2361,"fn":2531,"description":2532,"org":2533,"tags":2534,"stars":17,"repoUrl":18,"updatedAt":2541},"query and script Databricks SQL warehouses","Databricks SQL (DBSQL) advanced features and SQL warehouse capabilities. This skill MUST be invoked when the user mentions: \"DBSQL\", \"Databricks SQL\", \"SQL warehouse\", \"SQL scripting\", \"stored procedure\", \"CALL procedure\", \"materialized view\", \"CREATE MATERIALIZED VIEW\", \"pipe syntax\", \"|>\", \"geospatial\", \"H3\", \"ST_\", \"spatial SQL\", \"collation\", \"COLLATE\", \"ai_query\", \"ai_classify\", \"ai_extract\", \"ai_gen\", \"AI function\", \"http_request\", \"remote_query\", \"read_files\", \"Lakehouse Federation\", \"recursive CTE\", \"WITH RECURSIVE\", \"multi-statement transaction\", \"temp table\", \"temporary view\", \"pipe operator\". SHOULD also invoke when the user asks about SQL best practices, data modeling patterns, or advanced SQL features on Databricks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2535,2536,2539,2540],{"name":2396,"slug":2397,"type":15},{"name":2537,"slug":2538,"type":15},"Database","database",{"name":9,"slug":8,"type":15},{"name":2527,"slug":2528,"type":15},"2026-07-12T08:04:08.678282",{"slug":2543,"name":2543,"fn":2544,"description":2545,"org":2546,"tags":2547,"stars":17,"repoUrl":18,"updatedAt":2554},"databricks-docs","search Databricks documentation","Databricks documentation reference via llms.txt index. Use when other skills do not cover a topic, looking up unfamiliar Databricks features, or needing authoritative docs on APIs, configurations, or platform capabilities.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2548,2549,2552],{"name":9,"slug":8,"type":15},{"name":2550,"slug":2551,"type":15},"Documentation","documentation",{"name":2553,"slug":336,"type":15},"Reference","2026-07-15T05:41:34.697746",{"items":2556,"total":2109},[2557,2564,2570,2577,2584,2592,2599],{"slug":2373,"name":2373,"fn":2374,"description":2375,"org":2558,"tags":2559,"stars":17,"repoUrl":18,"updatedAt":2388},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2560,2561,2562,2563],{"name":2379,"slug":2380,"type":15},{"name":9,"slug":8,"type":15},{"name":2383,"slug":2384,"type":15},{"name":2386,"slug":2387,"type":15},{"slug":2390,"name":2390,"fn":2391,"description":2392,"org":2565,"tags":2566,"stars":17,"repoUrl":18,"updatedAt":2402},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2567,2568,2569],{"name":2396,"slug":2397,"type":15},{"name":9,"slug":8,"type":15},{"name":2400,"slug":2401,"type":15},{"slug":2404,"name":2404,"fn":2405,"description":2406,"org":2571,"tags":2572,"stars":17,"repoUrl":18,"updatedAt":2419},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2573,2574,2575,2576],{"name":2410,"slug":2411,"type":15},{"name":9,"slug":8,"type":15},{"name":2414,"slug":2415,"type":15},{"name":2417,"slug":2418,"type":15},{"slug":2421,"name":2421,"fn":2422,"description":2423,"org":2578,"tags":2579,"stars":17,"repoUrl":18,"updatedAt":2436},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2580,2581,2582,2583],{"name":2427,"slug":2428,"type":15},{"name":2430,"slug":2431,"type":15},{"name":2433,"slug":2434,"type":15},{"name":9,"slug":8,"type":15},{"slug":2438,"name":2438,"fn":2439,"description":2440,"org":2585,"tags":2586,"stars":17,"repoUrl":18,"updatedAt":2456},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2587,2588,2589,2590,2591],{"name":9,"slug":8,"type":15},{"name":2445,"slug":2446,"type":15},{"name":2448,"slug":2449,"type":15},{"name":2451,"slug":2452,"type":15},{"name":2454,"slug":2455,"type":15},{"slug":2458,"name":2458,"fn":2459,"description":2460,"org":2593,"tags":2594,"stars":17,"repoUrl":18,"updatedAt":2467},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2595,2596,2597,2598],{"name":2427,"slug":2428,"type":15},{"name":2430,"slug":2431,"type":15},{"name":2396,"slug":2397,"type":15},{"name":9,"slug":8,"type":15},{"slug":2469,"name":2469,"fn":2470,"description":2471,"org":2600,"tags":2601,"stars":17,"repoUrl":18,"updatedAt":2489},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2602,2603,2604,2605,2606,2607],{"name":9,"slug":8,"type":15},{"name":2476,"slug":2477,"type":15},{"name":2479,"slug":2480,"type":15},{"name":2482,"slug":2483,"type":15},{"name":2485,"slug":473,"type":15},{"name":2487,"slug":2488,"type":15}]