Hello everyone!
Iām currently working on a project with shared functionalities across different Databricks bundles. I have separate folders for each bundle, along with a common libs/ folder that holds some Python modules intended to be shared across bundles. My directory structure looks like this:
backend/
āāā libs/
ā āāā new_package/
ā ā āāā src/
ā ā ā āāā new_package/
ā ā ā āāā __init__.py
ā ā ā āāā functions.py
ā ā āāā tests/
ā ā āāā README.md
ā ā āāā requirements.txt
ā ā āāā pyproject.toml
ā ā
ā āāā second_package/
ā āāā src/
ā ā āāā second_package/
ā ā āāā __init__.py
ā ā āāā functions.py
ā āāā tests/
ā āāā README.md
ā āāā requirements.txt
ā āāā pyproject.toml
ā
āāā bundle_1/
ā āāā jobs/
ā āāā tests/
ā āāā README.md
ā āāā requirements.txt
ā āāā databricks.yml
ā
āāā bundle_2/
āāā jobs/
āāā tests/
āāā README.md
āāā requirements.txt
āāā databricks.yml
Iām using Databricks artifacts to build the wheel as per the documentation. Since my modules reside outside of the bundle root, I use the sync paths mapping to include files located outside the bundle root. However, when I try deploying from the CLI, I encounter this error:
Error: build failed default, error: chdir C:\Users\***\python_monorepo\bundle_1\libs\new_package: The system cannot find the path specified., output:
It seems that the bundle is unable to access the external module. Hereās my databricks.yml configuration:
bundle:
name: deploy-package-job
resources:
jobs:
deploy-package-job:
name: deploy-package-job
job_clusters:
- job_cluster_key: common-cluster
new_cluster:
spark_version: 13.3.x-scala2.12
node_type_id: Standard_DS3_v2
num_workers: 1
tasks:
- task_key: notebook-task
job_cluster_key: common-cluster
notebook_task:
notebook_path: ./jobs/notebook.ipynb
libraries:
- whl: ../libs/dist/*.whl
sync:
paths:
- ../libs
artifacts:
default:
type: whl
build: python -m build
path: ../libs/new_package
targets:
dev:
mode: development
default: true
workspace:
host: https://***
prod:
mode: production
workspace:
host: https://***
Does anyone have suggestions or insights on why the bundle canāt locate the external module? Any advice would be greatly appreciated!
Thank you!