Skip to main content

The Apache PySpark adapter plugin for dbt

Project description

dbt logo

Unit Tests Badge

dbt enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications.

dbt is the T in ELT. Organize, cleanse, denormalize, filter, rename, and pre-aggregate the raw data in your warehouse so that it's ready for analysis.

dbt-spark

The dbt-spark package contains all of the code enabling dbt to work with Apache Spark and Databricks. For more information, consult the docs.

Getting started

Running locally

A docker-compose environment starts a Spark Thrift server and a Postgres database as a Hive Metastore backend. Note: dbt-spark now supports Spark 3.3.2.

The following command starts two docker containers:

docker-compose up -d

It will take a bit of time for the instance to start, you can check the logs of the two containers. If the instance doesn't start correctly, try the complete reset command listed below and then try start again.

Create a profile like this one:

spark_testing:
  target: local
  outputs:
    local:
      type: spark
      method: thrift
      host: 127.0.0.1
      port: 10000
      user: dbt
      schema: analytics
      connect_retries: 5
      connect_timeout: 60
      retry_all: true

Connecting to the local spark instance:

  • The Spark UI should be available at http://localhost:4040/sqlserver/
  • The endpoint for SQL-based testing is at http://localhost:10000 and can be referenced with the Hive or Spark JDBC drivers using connection string jdbc:hive2://localhost:10000 and default credentials dbt:dbt

Note that the Hive metastore data is persisted under ./.hive-metastore/, and the Spark-produced data under ./.spark-warehouse/. To completely reset you environment run the following:

docker-compose down
rm -rf ./.hive-metastore/
rm -rf ./.spark-warehouse/

Reporting bugs and contributing code

  • Want to report a bug or request a feature? Let us know on Slack, or open an issue.

Code of Conduct

Everyone interacting in the dbt project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PyPA Code of Conduct.

Join the dbt Community

Reporting bugs and contributing code

Code of Conduct

Everyone interacting in the dbt project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the dbt Code of Conduct.

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

dbt_pyspark-1.1.2.tar.gz (38.7 kB view details)

Uploaded Source

Built Distribution

dbt_pyspark-1.1.2-py3-none-any.whl (47.9 kB view details)

Uploaded Python 3

File details

Details for the file dbt_pyspark-1.1.2.tar.gz.

File metadata

  • Download URL: dbt_pyspark-1.1.2.tar.gz
  • Upload date:
  • Size: 38.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for dbt_pyspark-1.1.2.tar.gz
Algorithm Hash digest
SHA256 136b404a0a09a7f1598afda6e0dbeb3d963c85372d982af871dbc81a810cff0b
MD5 e86b834227b1379e0e6c8a80169d4b1b
BLAKE2b-256 ddf93b3ace7d91f4d64300bcdbd5e534f89e363eb10c1e083ac5f07e09cfcd13

See more details on using hashes here.

File details

Details for the file dbt_pyspark-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: dbt_pyspark-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 47.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for dbt_pyspark-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bae96d3fd37f416f90b16f64e4713aca4b1ea5ced442a92d7aad7a2ee8b3806c
MD5 7bb6e58858544f6e416133a5818820c8
BLAKE2b-256 2789f0cb0c5275a75b14a5433774f82a3a6fa671a89c576eae909547ec74fda3

See more details on using hashes here.

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