πΉ 1. Introduction
In Databricks, you often need to interact with:
- File systems
- Object storage (Azure Data Lake, S3, GCS)
- Secrets (keys, credentials)
- Widgets (to parameterize notebooks)
- Other notebooks
π For these tasks, Databricks Utilities (dbutils) provide built-in helpers.
Key points:
- Available only in Python, R, and Scala notebooks.
- Not available in SQL notebooks.
- Used for file management, secrets handling, widgets, and notebook execution.
πΉ 2. What is dbutils?
dbutils
is a Databricks-provided utility library.
You can see whatβs available by running:
dbutils.help()
It lists available submodules, such as:
dbutils.fs
β File System utilitiesdbutils.secrets
β Secrets handlingdbutils.widgets
β Create interactive inputsdbutils.notebook
β Run/manage notebooks- (plus some experimental utilities, avoid in production)
πΉ 3. File System Utilities (dbutils.fs)
The most widely used part of dbutils.
Run help:
dbutils.fs.help()
It shows common functions:
ls(path)
β list contentscp(source, dest, recurse=False)
β copy filesmv(source, dest, recurse=False)
β move fileshead(path, maxBytes)
β preview file contentsrm(path, recurse=False)
β remove file/foldermkdirs(path)
β create directory
Example 1: List files
# List files in DBFS root
dbutils.fs.ls("/")
# List files in local driver storage
dbutils.fs.ls("file:/")
If you wrap with display()
, results show in a neat table:
display(dbutils.fs.ls("/"))
Example 2: Explore a Volume
Volumes live under:
/Volumes/<catalog>/<schema>/<volume>/
Example:
dbutils.fs.ls("/Volumes/dev/bronze/managed_volume/")
Output β shows folders like files/emp.csv
.
Example 3: Preview a file
dbutils.fs.head("/Volumes/dev/bronze/managed_volume/files/emp.csv")
Shows first lines of CSV.
Example 4: Create folder inside a Volume
dbutils.fs.mkdirs("/Volumes/dev/bronze/managed_volume/input/csv")
Example 5: Copy file
From local driver to Volume:
dbutils.fs.cp("file:/databricks/driver/emp.csv",
"/Volumes/dev/bronze/managed_volume/input/csv/emp.csv")
From Volume back to local:
dbutils.fs.cp("/Volumes/dev/bronze/managed_volume/input/csv/emp.csv",
"file:/tmp/emp.csv")
Check in local:
%sh
ls -ltr /tmp/
β This way, you can move data between local, DBFS, and cloud storages.
πΉ 4. Widgets Utilities (dbutils.widgets)
Widgets let you parameterize notebooks β useful for dynamic queries, workflows, and pipelines.
Check available options:
dbutils.widgets.help()
Common types:
text
β free text inputdropdown
β single-select dropdowncombobox
β dropdown + custom entrymultiselect
β select multiple values
Example 1: Create a Text Widget
dbutils.widgets.text("input_cust_id", "10000", "Customer ID")
π This creates a textbox at the top of the notebook.
- Name:
input_cust_id
- Default:
10000
- Label:
Customer ID
Get the value:
dbutils.widgets.get("input_cust_id")
If you change the input in the UI, the value updates automatically.
Example 2: Use Widget in SQL
For DBR <= 15.1:
%sql
SELECT ${input_cust_id} AS customer_id
For DBR >= 15.1:
%sql
SELECT :input_cust_id AS customer_id
πΉ 5. Secrets Utilities (dbutils.secrets)
Used to retrieve secrets stored in Databricks-backed scopes or Azure Key Vault-backed scopes.
Check options:
dbutils.secrets.help()
Common functions:
listScopes()
β list available secret scopeslist(scope)
β list secret keys in scopeget(scope, key)
β get a secret value
Example:
db_password = dbutils.secrets.get(scope="my_scope", key="db_password")
β οΈ Note: Cannot print()
secrets β they are redacted for security.
πΉ 6. Notebook Utilities (dbutils.notebook)
Used for running notebooks from other notebooks.
Check:
dbutils.notebook.help()
Example 1: Run another notebook
result = dbutils.notebook.run("/Repos/my_project/process_data", 60, {"input": "emp.csv"})
- Runs
/Repos/my_project/process_data
- Timeout: 60 seconds
- Passes input parameter
Example 2: Exit with value
Inside the child notebook:
dbutils.notebook.exit("SUCCESS")
Parent notebook can capture "SUCCESS"
.
πΉ 7. Summary
- dbutils = Databricks helper utilities, available in Python/R/Scala notebooks.
- dbutils.fs β Manage files across DBFS, Volumes, cloud storages, and local.
- dbutils.widgets β Create interactive parameters for notebooks.
- dbutils.secrets β Securely retrieve secrets from Databricks or Key Vault.
- dbutils.notebook β Run/manage notebooks programmatically.
- Always use
dbutils.help()
anddbutils.<submodule>.help()
to explore options.
β With this knowledge, you can now manage files, parameterize workflows, retrieve secrets, and orchestrate notebooks directly inside Databricks.