Skip to main content

A HopsFS compatible version of Delta Lake Python binding based on delta-rs

Project description

Hops-deltalake-python

PyPI userdoc apidoc

A HopsFS supported version of 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.files()
['part-00000-cb6b150b-30b8-4662-ad28-ff32ddab96d2-c000.snappy.parquet',
 'part-00000-7c2deba3-1994-4fb8-bc07-d46c948aa415-c000.snappy.parquet',
 'part-00001-c373a5bd-85f0-4758-815e-7eb62007a15c-c000.snappy.parquet']

See the user guide for more examples.

Installation

# with pip
pip install hops-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.

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


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.

hops_deltalake-1.1.2.post1-cp39-abi3-manylinux_2_35_x86_64.whl (59.5 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.35+ x86-64

hops_deltalake-1.1.2.post1-cp39-abi3-manylinux_2_28_x86_64.whl (58.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ x86-64

hops_deltalake-1.1.2.post1-cp39-abi3-macosx_11_0_arm64.whl (63.3 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file hops_deltalake-1.1.2.post1-cp39-abi3-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for hops_deltalake-1.1.2.post1-cp39-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f8659a356d3db4c3cb33b6271a3044160eba2c2efe8b85272b08941a64ebaa5d
MD5 90f6cacc7cfcd41a9d2303b348a3c86b
BLAKE2b-256 2530297fafa6635bfb8733743ec341bc50b17450e1f3069c89148f3518dda57b

See more details on using hashes here.

File details

Details for the file hops_deltalake-1.1.2.post1-cp39-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hops_deltalake-1.1.2.post1-cp39-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ba3f394ae8510c8a0132e01ad6b9a257aac957c967995bfecef260571a968313
MD5 29c36eb48ab9f65324bfc619e9305c31
BLAKE2b-256 add8a2e93f0256e9e248b24d63d960d3b8510603e6fd93f43d7bc0d8d4eafa81

See more details on using hashes here.

File details

Details for the file hops_deltalake-1.1.2.post1-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hops_deltalake-1.1.2.post1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8b1aab22cb09775bbae2a85acccc8a77e186bbc7648be30eded7fa30d07368de
MD5 e29c311fe076f359f3227fa2528d0636
BLAKE2b-256 abac5461ce6fbabe5c00ed37726fe3244c4b0510238bfef160b57812d106959b

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