Skip to main content

A plugin to run Kedro pipelines on Databricks.

Project description

kedro-databricks

Rye Ruff License: MIT codecov Python Version PyPI Version

Kedro plugin to develop Kedro pipelines for Databricks. This plugin strives to provide the ultimate developer experience when using Kedro on Databricks. The plugin provides three main features:

  1. Initialization: Transform your local Kedro project into a Databricks Asset Bundle project with a single command.
  2. Generation: Generate Asset Bundle resources definition with a single command.
  3. Deployment: Deploy your Kedro project to Databricks with a single command.

Installation

To install the plugin, simply run:

pip install kedro-databricks

Now you can use the plugin to develop Kedro pipelines for Databricks.

How to get started

Prerequisites:

Before you begin, ensure that the Databricks CLI is installed and configured. For more information on installation and configuration, please refer to the Databricks CLI documentation.

Creating a new project

To create a project based on this starter, ensure you have installed Kedro into a virtual environment. Then use the following command:

pip install kedro

Soon you will be able to initialize the databricks-iris starter with the following command:

kedro new --starter="databricks-iris"

After the project is created, navigate to the newly created project directory:

cd <my-project-name>  # change directory

Install the required dependencies:

pip install -r requirements.txt
pip install kedro-databricks

Now you can nitialize the Databricks asset bundle

kedro databricks init

Next, generate the Asset Bundle resources definition:

kedro databricks bundle

Finally, deploy the Kedro project to Databricks:

kedro databricks deploy

That's it! Your pipelines have now been deployed as a workflow to Databricks as [dev <user>] <project_name>. Try running the workflow to see the results.

Commands

kedro databricks init

To initialize a Kedro project for Databricks, run:

kedro databricks init

This command will create the following files:

├── databricks.yml # Databricks Asset Bundle configuration
├── conf/
│   └── base/
│       └── databricks.yml # Workflow overrides

The databricks.yml file is the main configuration file for the Databricks Asset Bundle. The conf/base/databricks.yml file is used to override the Kedro workflow configuration for Databricks.

Override the Kedro workflow configuration for Databricks in the conf/base/databricks.yml file:

# conf/base/databricks.yml

default: # will be applied to all workflows
    job_clusters:
        - job_cluster_key: default
          new_cluster:
            spark_version: 7.3.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 2
            spark_env_vars:
                KEDRO_LOGGING_CONFIG: /dbfs/FileStore/<package-name>/conf/logging.yml
    tasks: # will be applied to all tasks in each workflow
        - task_key: default
          job_cluster_key: default

<workflow-name>: # will only be applied to the workflow with the specified name
    job_clusters:
        - job_cluster_key: high-concurrency
          new_cluster:
            spark_version: 7.3.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 2
            spark_env_vars:
                KEDRO_LOGGING_CONFIG: /dbfs/FileStore/<package-name>/conf/logging.yml
    tasks:
        - task_key: default # will be applied to all tasks in the specified workflow
          job_cluster_key: high-concurrency
        - task_key: <my-task> # will only be applied to the specified task in the specified workflow
          job_cluster_key: high-concurrency

The plugin loads all configuration named according to conf/databricks* or conf/databricks/*.

kedro databricks bundle

To generate Asset Bundle resources definition, run:

kedro databricks bundle

This command will generate the following files:

├── resources/
│   ├── <project>.yml # Asset Bundle resources definition corresponds to `kedro run`
│   └── <project-pipeline>.yml # Asset Bundle resources definition for each pipeline corresponds to `kedro run --pipeline <pipeline-name>`

The generated resources definition files are used to define the resources required to run the Kedro pipeline on Databricks.

kedro databricks deploy

To deploy a Kedro project to Databricks, run:

kedro databricks deploy

This command will deploy the Kedro project to Databricks. The deployment process includes the following steps:

  1. Package the Kedro project for a specfic environment
  2. Generate Asset Bundle resources definition for that environment
  3. Upload environment-specific /conf files to Databricks
  4. Upload /data/raw/* and ensure other /data directories are created
  5. Deploy Asset Bundle to Databricks

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kedro_databricks-0.6.4.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

kedro_databricks-0.6.4-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file kedro_databricks-0.6.4.tar.gz.

File metadata

  • Download URL: kedro_databricks-0.6.4.tar.gz
  • Upload date:
  • Size: 26.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for kedro_databricks-0.6.4.tar.gz
Algorithm Hash digest
SHA256 64e81771fbca99abe5a7cb24ed09ee173cad9746a0e7a4c7177f2b9c9b8bb398
MD5 8c883af24d616cf458ed98c91ad0115d
BLAKE2b-256 d96aa4d5a202397aa272387c3a04dece8bb9fe0abed84bbd5536e345c74608a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for kedro_databricks-0.6.4.tar.gz:

Publisher: publish.yml on JenspederM/kedro-databricks

Attestations:

File details

Details for the file kedro_databricks-0.6.4-py3-none-any.whl.

File metadata

File hashes

Hashes for kedro_databricks-0.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ef06fac042d0fb5338e69db306340702bd8135247857f31f79894eb5dc43d6f1
MD5 fe374dc87afec554b82f73e8bf5392e5
BLAKE2b-256 6f80bb8900952d68df929953fca8745344e0268ef167d70f73ec62dd3ae51165

See more details on using hashes here.

Provenance

The following attestation bundles were made for kedro_databricks-0.6.4-py3-none-any.whl:

Publisher: publish.yml on JenspederM/kedro-databricks

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page