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

This version

1.6.2

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

deltalake-1.6.2-cp310-abi3-win_amd64.whl (52.6 MB view details)

Uploaded CPython 3.10+Windows x86-64

deltalake-1.6.2-cp310-abi3-musllinux_1_2_x86_64.whl (49.6 MB view details)

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

deltalake-1.6.2-cp310-abi3-musllinux_1_2_aarch64.whl (48.8 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

deltalake-1.6.2-cp310-abi3-manylinux_2_28_aarch64.whl (48.8 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

deltalake-1.6.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.6 MB view details)

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

deltalake-1.6.2-cp310-abi3-macosx_11_0_arm64.whl (44.7 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

deltalake-1.6.2-cp310-abi3-macosx_10_12_x86_64.whl (48.5 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

File hashes

Hashes for deltalake-1.6.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 235c06c1a0041afb1a52d98672d67a2fe6a38813bbea889335ff1eea6dbea5b5
MD5 ac434b287d950f1e95326c461683025f
BLAKE2b-256 dd47133df28c1cd265e7bc04a8c113ad03231987ba381f28b4fcc27791bb7c32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.6.2-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e5bf6d4ba40023e45e7b3eb2f948bcd648af7cc38463f8b60af0bf5f6278231c
MD5 580192d4f2550e2d3703157a39195450
BLAKE2b-256 42a23df57f815984ef3e79723518277ae97830756c905d9136ee2f954858bc84

See more details on using hashes here.

File details

Details for the file deltalake-1.6.2-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for deltalake-1.6.2-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bec019bbe82b06d0947758342849978dc3167d374edf99c8ae8af0ae4bf3ac6b
MD5 10da8989ca05047606a2fcffd68e9c0a
BLAKE2b-256 097d10b5d7a298552f7548ad7ddacba0c9b022f50643936bd587a5768254225f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.6.2-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 46caeee8ea14b89975305d6d36abef99246f7ff7b1fc1194b9395d92f6db3533
MD5 53bae53c1b26b77dc759df154301ea00
BLAKE2b-256 ad01693f5a295b5bdf935adfc6442ccf055a3d6e8b7ac0960318365d33aa3275

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.6.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 00ca11b3081345a922173efc5e6582edf2019554f184d9a1e961e4f888974dae
MD5 22570c222838360df84fe3769aec249e
BLAKE2b-256 6125277b9712547e020c68ed6a13b983b2b8c8287f6d278683c23a042b4c2878

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.6.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6dd5efcf165c5418a02afe6de4b9d88c268c6c4eae2a4c38d40eab72bc69c8ee
MD5 d60bf4df8abc5c4e0faf43fbbb1405c3
BLAKE2b-256 cb577ef2f9ea436d90bc8797fd4c0a6d1df43865d0fe716525e847678582a114

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.6.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e317a46212f4b7fda6a20feb45a336aa0b95241366d14edb3fd4f481a087efa4
MD5 6a29032f3213d8f5e329b50dff2ef240
BLAKE2b-256 3b4ccf6660a086f05e0cd2d691a3ac68efc57aa51e16ff76bf353584c83029f9

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