Native Delta Lake Python binding based on delta-rs with Pandas integration
Project description
Deltalake-python
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:
uvxinvokes a tool without installing it.- if you plan to often use
maturin, you can install the "tool" withuv 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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba3c569a6ac6e319487e47b6689c58ac2d51f74aab9c961e9b9d249b10a2fb6a
|
|
| MD5 |
8126441c729a5dfca1b80bbe31b1950a
|
|
| BLAKE2b-256 |
28546a0537aaba348d64eb88e72a84045494cb6a9970ae0b8ee65966859f9528
|
File details
Details for the file deltalake-1.3.2-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: deltalake-1.3.2-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 40.1 MB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f72131d7ddd8e25f84a53ac26028fbed143c66035639644d50603871cf606871
|
|
| MD5 |
df2470260777ef2a8fe96d0641965851
|
|
| BLAKE2b-256 |
ab4894b37fa3b4cf24c6ae5a171a08e6c531a3d014402eb1dbdc5f13bf63db08
|
File details
Details for the file deltalake-1.3.2-cp310-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: deltalake-1.3.2-cp310-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 37.7 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc7b5837b7d2ad0b59b5272eef09c4c0aaa4b10e62d290ab6ee3dc808b9be5d2
|
|
| MD5 |
cde7eb833d82b3d2740441f158dc0b8c
|
|
| BLAKE2b-256 |
f53e65df78f786df2ac83fa92e68fbdc0ba05216ac894abc5b213d0b643a4375
|
File details
Details for the file deltalake-1.3.2-cp310-abi3-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: deltalake-1.3.2-cp310-abi3-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 36.4 MB
- Tags: CPython 3.10+, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88ced2bbd7b08bc674d5e2fe1a8774465910c3d178a1756bfffd5065e73b22a5
|
|
| MD5 |
becf3a5fd4d844d139e4e809bb375296
|
|
| BLAKE2b-256 |
2c947c237171296d40a60b82e948f7cb67162f7a4fed8b9ba4b7f606b2772031
|
File details
Details for the file deltalake-1.3.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: deltalake-1.3.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 37.7 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a95048c15cc414c2d0eb06716839489b91989ec9b9bc68551ea83f2e10944b2d
|
|
| MD5 |
d48c52575a195966f44a1b081460d602
|
|
| BLAKE2b-256 |
c8f945971281b33ec18227a7a5a7768e6b2ba60ccf3cbe732cba2e1777fda4e1
|
File details
Details for the file deltalake-1.3.2-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: deltalake-1.3.2-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 33.8 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5881372d4588e936d2a0b38e02d120f18633de2fbaf7188a26cfe8caf679ce73
|
|
| MD5 |
b931351fac3fee11fc510c2dbb9180ce
|
|
| BLAKE2b-256 |
b67e3349ac5d254c1507bf447e6f090f18fe499408cc1c9e837867355ebe1d93
|
File details
Details for the file deltalake-1.3.2-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: deltalake-1.3.2-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 37.0 MB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dcf29c6cbbbd15ecabe0013c99586f88b517988f5a2c385494b1477f5c62fad
|
|
| MD5 |
8b028f23078763003b137e59b529c746
|
|
| BLAKE2b-256 |
af304e218bf1c6b335d2e020442662d0f6596c3d15a1dd79d4e6402675599031
|