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

This version

1.4.2

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.4.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.4.2-cp310-abi3-win_amd64.whl (40.8 MB view details)

Uploaded CPython 3.10+Windows x86-64

deltalake-1.4.2-cp310-abi3-musllinux_1_2_x86_64.whl (38.5 MB view details)

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

deltalake-1.4.2-cp310-abi3-manylinux_2_28_aarch64.whl (37.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

deltalake-1.4.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.5 MB view details)

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

deltalake-1.4.2-cp310-abi3-macosx_11_0_arm64.whl (34.6 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

deltalake-1.4.2-cp310-abi3-macosx_10_12_x86_64.whl (37.7 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: deltalake-1.4.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.4.2.tar.gz
Algorithm Hash digest
SHA256 957e52624e1dcee35f0920868e3d15a1feab40fcd0fcd4682231a33da3d442da
MD5 caad6c4739a5ba50e0b844d24c726dcd
BLAKE2b-256 325f095796d6e175103924989157bfab537efe41806b2b706b76df86051ded2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.4.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2e3e6f858ddf843a3f6936d7261866a765408c253e31483172f8c28600cc55ff
MD5 cfa92381ff0b2ea65245e65725bf79a7
BLAKE2b-256 e6e0e15a10c860e9a773bf0ac951a8bb8491a115a77e22ae52a5cbc1d13d9594

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.4.2-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f515fd0ecfcd87ba7dfa3fd94247e1fd8f0ce147e1bd78e2d7a32197ce5dbf17
MD5 e0048b2f77d64f06441a44ce744a6abf
BLAKE2b-256 ba74bc63508d0ea80b9cb52db9844ba044fd11a7dff235093eae74a13cc0ff25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.4.2-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c6e4797bb0b3e9fd62cbe41806f52f68658891528ee4b6a2073d16c2002bdcc8
MD5 f1228126cc72f020ed6166c491c2df77
BLAKE2b-256 48d4d70be4042a4818b906e9e1f55504b205eb94f48696b568b7e33a989d3cf1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.4.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5b6817e8beae1408fc90827c5c3687d5acf35ae9e43a0e71e5c517a6ec77272a
MD5 880cac1a5f16cd22499d551bc88fae97
BLAKE2b-256 d2ec9aa7d0c52355d4664fcc1552a0be7535111f15003d2cd1cd8f225a256622

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.4.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4d4044a83e13a861c1d94eb5211dc40f41d089c9d6db9c08445d0438d346fe3
MD5 564cb428c90b979c4eb122abe23657e8
BLAKE2b-256 f49bddb4adaec71b42c172905764d945b0ed01db1167cb59ec347f08d9456e31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.4.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5c88b856a74517abfc91ca667594e984648447ba96e65914db2190467caad9b9
MD5 42bf8c9b812862c67b75c960edf62761
BLAKE2b-256 c9acc2835de7bfbf810849cc6d48720574dd7f5ce308e5d11ab5d9bbaa8afb4e

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