Skip to main content

Databricks SQL framework, easy to learn, fast to code, ready for production.

Project description

Databricks SQL

Databricks SQL framework, easy to learn, fast to code, ready for production.

Installation

$ pip install databricks-sql

Configuration

from databricks_sql.client import Configuration

CONFIGURATION = Configuration.instance(
    access_token="",
    command_directory="",
    http_path="",
    server_hostname="",
)

Usage

Databricks SQL usage description:

Delete

Delete with where

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .delete("catalog.schema.table")
        .where("id", "994238a4-8c18-436a-8c06-29ec89c4c056")
        .execute()
    )

Delete with where condition

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .delete("catalog.schema.table")
        .where("description", "%Databricks%", operator="LIKE")
        .execute()
    )

Execute

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .execute(
            """
                CREATE TABLE IF NOT EXISTS catalog.schema.table (
                    id STRING NOT NULL,
                    name STRING NOT NULL,
                    description STRING,
                    CONSTRAINT table_primary_key PRIMARY KEY(id)
                ) USING DELTA
            """,
            parameters=None,
            skip_load=True,
        )
    )

Insert

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .insert("catalog.schema.table")
        .set("id", "994238a4-8c18-436a-8c06-29ec89c4c056")
        .set("name", "Name")
        .set("description", "Description")
        .execute()
    )

Paging

Paging with where condition

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .select("catalog.schema.table")
        .fields("id", "name", "description")
        .where("name", "%Databricks%", operator="LIKE")
        .order_by("id")
        .paging(0, 10)
    )

Paging without where condition

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .select("catalog.schema.table")
        .paging(0, 10)
    )

Select

Fetch all

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .select("catalog.schema.table")
        .execute()
        .fetch_all()
    )

Fetch many

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .select("catalog.schema.table")
        .execute()
        .fetch_many(1)
    )

Fetch one

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .select("catalog.schema.table")
        .execute()
        .fetch_one()
    )

Select by file

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .execute("command.sql", {"id": "994238a4-8c18-436a-8c06-29ec89c4c056"})
        .fetch_one()
    )

Select by command

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .execute("SELECT id, name, description FROM catalog.schema.table WHERE id = %(id)s", {"id": "994238a4-8c18-436a-8c06-29ec89c4c056"})
        .fetch_one()
    )

Update

Update with where

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .update("catalog.schema.table")
        .set("name", "New Name")
        .set("description", "New Description")
        .where("id", "994238a4-8c18-436a-8c06-29ec89c4c056")
        .execute()
    )

Update with where all

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .update("catalog.schema.table")
        .set("name", "New Name")
        .set("description", "New Description")
        .where_all({"id": "994238a4-8c18-436a-8c06-29ec89c4c056", "name": "Name", "description": "Description"})
        .execute()
    )

Using mustache

SQL

select
    id,
    name,
    description
from catalog.schema.table
where 1 = 1
{{#id}}
and id = %(id)s
{{/id}}
{{#name}}
and name like %(name)s
{{/name}}

Select with filters

from databricks_sql.client import Database

with Database() as connection:
    (
        connection
        .execute("command.sql", parameters={"id": "994238a4-8c18-436a-8c06-29ec89c4c056", "name": "Name"})
        .fetch_one()
    )

License

This project is licensed under the terms of the Apache License 2.0.

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

databricks_sql-1.0.0.tar.gz (8.6 kB view hashes)

Uploaded Source

Built Distribution

databricks_sql-1.0.0-py3-none-any.whl (8.7 kB view hashes)

Uploaded Python 3

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