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 object store communication. Please file a Github issue to request a 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:

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.5.0.tar.gz (5.3 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.5.0-cp310-abi3-win_amd64.whl (41.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

deltalake-1.5.0-cp310-abi3-musllinux_1_2_x86_64.whl (38.7 MB view details)

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

deltalake-1.5.0-cp310-abi3-manylinux_2_28_aarch64.whl (37.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

deltalake-1.5.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.7 MB view details)

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

deltalake-1.5.0-cp310-abi3-macosx_11_0_arm64.whl (34.8 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

deltalake-1.5.0-cp310-abi3-macosx_10_12_x86_64.whl (37.9 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for deltalake-1.5.0.tar.gz
Algorithm Hash digest
SHA256 cdea832ebcadd9f6ccedfcf023f244f2830152fd82b2f78b42e701989dd73b2d
MD5 99b9079402a2e01b13493261319d2dc7
BLAKE2b-256 1cbf906ff8f875847bb2d2cf9f612d4de6e775ace366c04ad6356b6666504e6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2ad8f11a64c0477be57d310aa9b470a7c3c3ba2a4e4e86ad92c7ca3554c539f2
MD5 0fefaf221aed869289686b03411bf167
BLAKE2b-256 a2846dd4fb8d0fee8e2533a80afd8b9c57dc442138152e57a41c7b8f986b8a64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cfc7b124dc22e885c0af413c9a3f1c4a5fd52ec78bce6fd957a78a90c7943e1b
MD5 5f7b382481323d5315002cdca842efdf
BLAKE2b-256 a92082929cf32aab56ad8f8350279b4c42cd14e8d0db97826d5bea1d246b9262

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.0-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7baa94c7f8234c0840627e8f2f5e3f88a02ff011a2991b8e034c187ffafcb3a0
MD5 1c0326d7b2364bcead88169a9a2fb898
BLAKE2b-256 c84cfc68c0c053f3acc53264e84e1447f70d4a06a7489df78161a0d0fc786c47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b2fe5d6fe4eb20781ae593659f77a382079503c06f3525691c8fee2815de2322
MD5 5d311a8b95b31e6d885ca1edc6753b46
BLAKE2b-256 146ae0d363f25e422a185d3b771da4b7eecb230a77c37260f13ddc0c31dafef1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db388bd519c327953e6ccd688f0cf132c9186362b54d0323d0d5ffeb00cfcde1
MD5 3868d0d907f1654d319aa2c5e532264a
BLAKE2b-256 ffb62c983a79593b5fdda60fc49b4f15be360b102212561bcf7a6bf05e12ed61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b13c693989f50b3ec6e6a7ebeb3ca4ef7cb3f340b8fe8e1a0e0767319c5f0bf5
MD5 b79666bbd9e4a7e76def0575c1ecd3ec
BLAKE2b-256 9c75ae5593e1836ea81ab14ab9a58e81e25f351597cb6a66d9e84e9d40a99d21

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