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.1.tar.gz (5.4 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.1-cp310-abi3-win_amd64.whl (44.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

deltalake-1.5.1-cp310-abi3-musllinux_1_2_x86_64.whl (41.6 MB view details)

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

deltalake-1.5.1-cp310-abi3-manylinux_2_28_aarch64.whl (40.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

deltalake-1.5.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (41.6 MB view details)

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

deltalake-1.5.1-cp310-abi3-macosx_11_0_arm64.whl (37.4 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

deltalake-1.5.1-cp310-abi3-macosx_10_12_x86_64.whl (40.8 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for deltalake-1.5.1.tar.gz
Algorithm Hash digest
SHA256 e75f5c0c0e3a4aae350701fd2c4122d57a182eddce335c5554ea345984d18885
MD5 bba0dd59507a9bea19182857f6f9a9e7
BLAKE2b-256 2d304cdaa52aa82c808019b100c108d98d2ae71b3a94b167b94824f40b8c02c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e3e93a90fa19174b39b66d28fd2d83d99bfb946649b49efa2db602a25a6a4a0c
MD5 095ae00910eaf01d3540cb6e779a4f26
BLAKE2b-256 8a132e4ba13f67fc4db43489ce933d4a25d5b6a167967b0f8a62ce09273ff83e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.1-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0f792f95f4b53d820ae045051dd28f8815a314b6d6165cf81e86250070152579
MD5 c3c55ed914c0e63b4c3fe446b515ac09
BLAKE2b-256 fa1be1326d3e51ec093617b881d5ca2f854380eeadd47d632c8d005988e8a12e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.1-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4a7afb96f379a07ec4f97fc69d3afa3a6355a2302b2fd790a91f0a1dc7b8e6a4
MD5 49e3ef5780e376e146a4678dd0ed42c6
BLAKE2b-256 5dda4827ea253f8000dd2342c62e5acaed2d6ebeffc72e635a8b48b40b600d89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 96c00b7334f19d6e71e184b333ac85bb6c61ddfb1e14dc276f99f6c62061c13b
MD5 48e186d1c9f0949fb4e626a13b2d3aaf
BLAKE2b-256 68ce8e4f617b15f9f1e7589a4075f0a1fb5872ad003b92d3b508b81ed4ab1cdc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f3462997e6767382d178cb16e63a30a7a101af08403f7a59c0089a4afdba507b
MD5 43088fc4784f2902988f04b4f7a7f42e
BLAKE2b-256 8882e6650c0233393ef273250c3f5fefa7036ad94adec976232e0e829f4e744f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for deltalake-1.5.1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1ddbcd7ee3eeb9a776db7445a36bde78a94a131abe09450b0c4c4b83e8ae79d1
MD5 0a58a1b55fe305ee4931ded700878d7d
BLAKE2b-256 d139a74eed5cfa015cc98633499afd555b81dc1c3da476b5222e6cb347dc63ec

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