Pydantic Databricks
Overview
This library leverages Pydantic to simplify the generation of Databricks SQL queries for managing tables. It provides a convenient way to define table schemas using Pydantic models and generates corresponding SQL statements.
Installation
pip install pydantic-databricks
Usage
1. Basic Example Table Creation
from pydantic_databricks import DatabricksModel
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
class Schema(DatabricksModel):
_table_name = "test"
_schema_name = "test_schema"
col1: str
col2: int
col3: float
spark.sql(Schema.create_table())
Generated SQL:
CREATE TABLE test_schema.test (col1 STRING NOT NULL, col2 BIGINT NOT NULL, col3 DOUBLE NOT NULL) USING DELTA;
2. Setting Grants
from pydantic_databricks import DatabricksModel, Grant, GrantAction
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()
class Schema(DatabricksModel):
_table_name = "test"
_schema_name = "default"
_grants = {Grant(action=GrantAction.MODIFY, principal="user1"),
Grant(action=GrantAction.SELECT, principal="user2"), }
col1: str
for grant in Schema.grant_statements():
spark.sql(grant)
Currently Supported Options
_catalog_name: The catalog name for the table. Default isNone. IfNonethen a two part namespace is used._schema_name: The schema name for the table (required)._table_name: The name of the table (required)._grants: A set of Grant objects. Default isNone._location_prefix: The location prefix for external tables. Default isNone. If set, then the table is created as an external table. The prefix will be appended with the full table name._table_properties: A dictionary of table properties._table_create_mode: The mode for table creation. Default isCreateMode.CREATE._table_data_source: The data source for the table. Default isDataSource.DELTA._partition_columns: A list of partition columns for the table. Default isNone._options: A dictionary of additional options for table creation. Default isNone._comment: A comment for the table. Default isNone.
Coming soon
- Support for table and column constraints
Contributing
We welcome contributions to pydantic-databricks! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a branch for your feature or bug fix.
- Make your changes.
- Test your changes thoroughly.
- Submit a pull request.
License
- pydantic-databricks is licensed under the MIT License. See LICENSE for more information
Metadata
Release files for pydantic-databricks 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pydantic_databricks-0.3.0.tar.gz | 10.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydantic_databricks-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.1 kB
Release files / pydantic_databricks-0.3.0.tar.gz
| Download URL | pydantic_databricks-0.3.0.tar.gz |
|---|---|
| Size | 10.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
019d74848d3bc2947786ed7d696b75a2a6ba77b28a6182b9a0bfe89375569a09
|
|
BLAKE2b-256 checksum How to use checksums |
63c286383cf263e01fb8d819ba7343bf70e73aeed6fe94bc5a6df364f15e3276
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
pdm/2.10.4 CPython/3.12.0
|
Release files / pydantic_databricks-0.3.0-py3-none-any.whl
| Download URL | pydantic_databricks-0.3.0-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8f2f16a4e8387a1b6c61bb5cb1004c107b3efb90d19382d2639cad79722c438d
|
|
BLAKE2b-256 checksum How to use checksums |
ab9675e828a5fdf5ab7cfee2191de5a45349ffe7c3fffcb96be38aede530ff05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
pdm/2.10.4 CPython/3.12.0
|