Skip to main content

Native Delta Lake Python binding based on delta-rs with Pandas integration

Project description

Deltalake-python

PyPI userdoc apidoc

Native Delta Lake Python binding based on delta-rs with Pandas integration.

Example

from deltalake import DeltaTable
dt = DeltaTable("../rust/tests/data/delta-0.2.0")
dt.version()
3
dt.file_uris()
['s3://bucket/table/part-00000-cb6b150b-30b8-4662-ad28-ff32ddab96d2-c000.snappy.parquet',
 's3://bucket/table/part-00000-7c2deba3-1994-4fb8-bc07-d46c948aa415-c000.snappy.parquet',
 's3://bucket/table/part-00001-c373a5bd-85f0-4758-815e-7eb62007a15c-c000.snappy.parquet']

See the user guide for more examples.

Installation

# with pip
pip install deltalake
# with uv
uv add deltalake
# with poetry
poetry add deltalake

NOTE: official binary wheels are linked against openssl statically for remote objection store communication. Please file Github issue to request for critical openssl upgrade.

Tracing and Observability

Delta-rs supports OpenTelemetry tracing for performance analysis and debugging.

Basic Example

import os
import deltalake
from deltalake import write_deltalake, DeltaTable

# Enable logging to see trace output in stdout
os.environ["RUST_LOG"] = "deltalake=debug"

# Initialize tracing (uses default HTTP endpoint or OTEL_EXPORTER_OTLP_ENDPOINT env var)
# For authentication, set OTEL_EXPORTER_OTLP_HEADERS="x-honeycomb-team=your-api-key"
# The HTTP exporter automatically reads OTEL_EXPORTER_OTLP_HEADERS for API keys
deltalake.init_tracing()

# All Delta operations are now traced
write_deltalake("my_table", data)
dt = DeltaTable("my_table")
df = dt.to_pandas()

When you run this code, you'll see trace information in stdout showing operation timings and execution flow.

Build custom wheels

Sometimes you may wish to build custom wheels. Maybe you want to try out some unreleased features. Or maybe you want to tweak the optimization of the Rust code.

To compile the package, you will need the Rust compiler and maturin:

curl https://sh.rustup.rs -sSf | sh -s

Then you can build wheels for your own platform like so:

```sh
uvx maturin build --release --out wheels

Note:

  • uvx invokes a tool without installing it.
  • if you plan to often use maturin, you can install the "tool" with uv tool install maturin.

For a build that is optimized for the system you are on (but sacrificing portability):

RUSTFLAGS="-C target-cpu=native" uvx maturin build --release --out wheels

Cross compilation

The above command only works for your current platform. To create wheels for other platforms, you'll need to cross compile. Cross compilation requires installing two additional components: to cross compile Rust code, you will need to install the target with rustup; to cross compile the Python bindings, you will need to install ziglang.

The following example is for manylinux2014. Other targets will require different Rust target and Python compatibility tags.

rustup target add x86_64-unknown-linux-gnu

Then you can build wheels for the target platform like so:

uvx --from 'maturin[zig]' maturin build --release --zig \
    --target x86_64-unknown-linux-gnu \
    --compatibility manylinux2014 \
    --out wheels

If you expect to only run on more modern system, you can set a newer target-cpu flag to Rust and use a newer compatibility tag for Linux. For example, here we set compatibility with CPUs newer than Haswell (2013) and Linux OS with glibc version of at least 2.24:

RUSTFLAGS="-C target-cpu=haswell" uvx --from 'maturin[zig]' maturin build --release --zig \
    --target x86_64-unknown-linux-gnu \
    --compatibility manylinux_2_24 \
    --out wheels

See note about RUSTFLAGS from the arrow-rs readme.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

deltalake-1.3.2.tar.gz (5.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

deltalake-1.3.2-cp310-abi3-win_amd64.whl (40.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

deltalake-1.3.2-cp310-abi3-musllinux_1_2_x86_64.whl (37.7 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

deltalake-1.3.2-cp310-abi3-manylinux_2_28_aarch64.whl (36.4 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

deltalake-1.3.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.7 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

deltalake-1.3.2-cp310-abi3-macosx_11_0_arm64.whl (33.8 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

deltalake-1.3.2-cp310-abi3-macosx_10_12_x86_64.whl (37.0 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file deltalake-1.3.2.tar.gz.

File metadata

  • Download URL: deltalake-1.3.2.tar.gz
  • Upload date:
  • Size: 5.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.11.5

File hashes

Hashes for deltalake-1.3.2.tar.gz
Algorithm Hash digest
SHA256 ba3c569a6ac6e319487e47b6689c58ac2d51f74aab9c961e9b9d249b10a2fb6a
MD5 8126441c729a5dfca1b80bbe31b1950a
BLAKE2b-256 28546a0537aaba348d64eb88e72a84045494cb6a9970ae0b8ee65966859f9528

See more details on using hashes here.

File details

Details for the file deltalake-1.3.2-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for deltalake-1.3.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f72131d7ddd8e25f84a53ac26028fbed143c66035639644d50603871cf606871
MD5 df2470260777ef2a8fe96d0641965851
BLAKE2b-256 ab4894b37fa3b4cf24c6ae5a171a08e6c531a3d014402eb1dbdc5f13bf63db08

See more details on using hashes here.

File details

Details for the file deltalake-1.3.2-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for deltalake-1.3.2-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dc7b5837b7d2ad0b59b5272eef09c4c0aaa4b10e62d290ab6ee3dc808b9be5d2
MD5 cde7eb833d82b3d2740441f158dc0b8c
BLAKE2b-256 f53e65df78f786df2ac83fa92e68fbdc0ba05216ac894abc5b213d0b643a4375

See more details on using hashes here.

File details

Details for the file deltalake-1.3.2-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for deltalake-1.3.2-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 88ced2bbd7b08bc674d5e2fe1a8774465910c3d178a1756bfffd5065e73b22a5
MD5 becf3a5fd4d844d139e4e809bb375296
BLAKE2b-256 2c947c237171296d40a60b82e948f7cb67162f7a4fed8b9ba4b7f606b2772031

See more details on using hashes here.

File details

Details for the file deltalake-1.3.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for deltalake-1.3.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a95048c15cc414c2d0eb06716839489b91989ec9b9bc68551ea83f2e10944b2d
MD5 d48c52575a195966f44a1b081460d602
BLAKE2b-256 c8f945971281b33ec18227a7a5a7768e6b2ba60ccf3cbe732cba2e1777fda4e1

See more details on using hashes here.

File details

Details for the file deltalake-1.3.2-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for deltalake-1.3.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5881372d4588e936d2a0b38e02d120f18633de2fbaf7188a26cfe8caf679ce73
MD5 b931351fac3fee11fc510c2dbb9180ce
BLAKE2b-256 b67e3349ac5d254c1507bf447e6f090f18fe499408cc1c9e837867355ebe1d93

See more details on using hashes here.

File details

Details for the file deltalake-1.3.2-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for deltalake-1.3.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6dcf29c6cbbbd15ecabe0013c99586f88b517988f5a2c385494b1477f5c62fad
MD5 8b028f23078763003b137e59b529c746
BLAKE2b-256 af304e218bf1c6b335d2e020442662d0f6596c3d15a1dd79d4e6402675599031

See more details on using hashes here.

Supported by

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