databricks-agent-brick…
Create Agent Bricks: Knowledge Assistants (KA) for document Q&A and Supervisor Agents for…
Execute code and manage compute on Databricks: run Python/Scala/SQL/R via serverless, classic, or interactive clusters, and create/resize/delete clusters and SQL warehouses.
$ npx -y skills add databricks/databricks-agent-skills --skill databricks-execution-compute --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/databricks-execution-computeContext preview
The summary Claude sees to decide when to auto-load this skill.
Execute code and manage compute on Databricks: run Python/Scala/SQL/R via serverless, classic, or interactive clusters, and create/resize/delete clusters and SQL warehouses.
name: databricks-execution-compute description: "Execute code and manage compute on Databricks: run Python/Scala/SQL/R via serverless, classic, or interactive clusters, and create/resize/delete clusters and SQL warehouses." compatibility: Requires databricks CLI (>= v1.0.0) metadata: version: "0.1.0" parent: databricks-core
Run 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.
| Aspect | [Databricks Connect](references/1-databricks-connect.md) ⭐ | [Serverless Job](references/2-serverless-job.md) | [Interactive Cluster](references/3-interactive-cluster.md) | |--------|-------------------|----------------|---------------------| | **Use for** | Spark code (ETL, data gen) | Heavy processing (ML) | State across tool calls, Scala/R | | **Startup** | Instant | ~25-50s cold start | ~5min if stopped | | **State** | Within Python process | None | Via context_id | | **Languages** | Python (PySpark) | Python, SQL | Python, Scala, SQL, R | | **Dependencies** | `withDependencies()` | CLI with environments spec | Install on cluster |
Main decision point: if you're using Declarative Automation Bundles (DABs) then follow the instructions of the [`databricks-dabs` skill](../../skills/databricks-dabs/SKILL.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.
Prefer Databricks Connect for all spark-based workload, then serverless.
Spark-based code? → Databricks Connect (fastest) └─ Python 3.12 missing? → Install it + databricks-connect └─ Install fails? → Ask user (don't auto-switch modes) Heavy/long-running (ML)? → Serverless Job (independent) Need state across calls? → Interactive Cluster (list and ask which one to use) Scala/R? → Interactive Cluster (list and ask which one to use)
**Read the reference file for your chosen mode before proceeding.**
from databricks.connect import DatabricksSession
...
spark = DatabricksSession.builder.profile("my-local-profile").serverless(True).getOrCreate()
python my_spark_script.pyPure 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).
**1. Upload the local file as a workspace notebook.** `TARGET_PATH` is positional; `--file` is the local path.
`databricks workspace import /Workspace/Users/<user>/.ai_dev_kit/train --file /local/path/to/train.py --format SOURCE --language PYTHON --overwrite`
**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).
`databricks jobs submit --no-wait --json @submit.json`
{
"run_name": "train-run",
"tasks": [{
"task_key": "main",
"notebook_task": {"notebook_path": "/Workspace/Users/<user>/.ai_dev_kit/train"},
"environment_key": "ml_env"
}],
"environments": [{
"environment_key": "ml_env",
"spec": {"client": "4", "dependencies": ["scikit-learn==1.5.2", "mlflow==2.22.0"]}
}]
}**3. Check state / wait for completion.** Life-cycle: `PENDING` → `RUNNING` → `TERMINATED` (or `SKIPPED` / `INTERNAL_ERROR`). Only read `.state.result_state` (`SUCCESS` / `FAILED` / `CANCELED`) once life-cycle is `TERMINATED`.
`databricks jobs get-run <RUN_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}'`
**4. Fetch the output / 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()`.
`databricks jobs get-run-output <TASK_RUN_ID> | jq '{result: .notebook_output.result, error, error_trace}'`
Always use `dbutils.notebook.exit(<string>)` 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.
**Avoid by default — prefer Serverless Job.** Only use an interactive cluster when:
Interactive clusters are **slow to start (3-8 min)** and cost money while running. Don't start one implicitly.
All compute lifecycle and code-execution actions go through the Databricks CLI. Headline commands:
| Action | Command | |--------|---------| | Upload local file as workspace notebook | `databricks workspace import <WORKSPACE_PATH> --file <LOCAL> --format SOURCE --language PYTHON --overwrite` | | Run serverless code (upload + submit + wait) | `databricks jobs submit --json @submit.json` (see Serverless Job section above; with `--no-wait` for async) | | Get run state / wait | `databricks jobs get-run <RUN_ID>` (poll `.state.life_cycle_state`) | | Fetch run output | `databricks jobs get-run-output <TASK_RUN_ID>` | | List clusters | `databricks clu
Build on Databricks with AI coding agents such as Claude Code, Cursor, Codex, and GitHub Copilot. This repository provides the skills and agent plugins for Databricks AI Tools.
Repo: databricks/databricks-agent-skills
Create Agent Bricks: Knowledge Assistants (KA) for document Q&A and Supervisor Agents for…
Use Databricks built-in AI Functions (ai_classify, ai_extract, ai_summarize, ai_mask,…
Create Databricks AI/BI dashboards. Must use when creating, updating, or deploying Lakeview…
Design the UX of custom-code Databricks Apps (AppKit/React) data screens — KPI/overview…
Python backend for Databricks Apps — FastAPI (default), Flask, Dash, Streamlit, Gradio,…
Build apps on Databricks Apps platform. Use when asked to create data apps, analytics tools,…