hydro 💧
hydro is a collection of Python-based Apache Spark and Delta Lake extensions.
See Key Functionality for concrete use cases.
Warning ⚠️
hydro is well tested but not battle hardened, yet. Use it at your own risk.
Installation
pip install delta-hydro
Docs 📖
https://christophergrant.github.io/delta-hydro
Key Functionality 🔑
- De-duplicate a Delta Lake table, in-place, without a full overwrite - hydro.delta.deduplicate
- Correctly perform Slowly Changing Dimensions (SCD) (types 1 or 2) on Delta Lake tables - hydro.delta.scd and hydro.delta.bootstrap_scd2
- Issue queries against Delta Log metadata, quickly and efficently getting things like partition sizes on huge tables - hydro.delta.partition_stats
- Other quality of life improvements like hydro.delta.detail_enhanced and hydro.spark.fields
Contributions ✨
Contributions are welcome.
Please create an issue and discuss before starting work on a feature to make sure that it aligns with the future of the project.
Naming 🤓
hydro is short for hydrologist, where a hydrologist is a person who studies water and its movement. Delta Lake, Data Lake, Lakehouse => water.
ChatGPT and LLMs 🤖
Some of this project's code and documentation was generated by a Large Language Model(LLM), namely ChatGPT.
We are proud prompt engineers, so we display the prompt that gave us the code in hydro's source (example).
APIs
The topic of SQL vs DataFrames is a hot one in the data space.
SQL certainly has its place in analytic and other ad-hoc use cases, but it is missing the expressive power of an imperative language.
This project is a testament to the power of the mix of imperative and declarative expression that DataFrames give. A lot of this code would be very verbose or impossible to express with SQL.
Metadata
Release files for delta-hydro 0.4.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| delta_hydro-0.4.3.tar.gz | 14.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| delta_hydro-0.4.3-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 29.1 kB
Release files / delta_hydro-0.4.3.tar.gz
| Download URL | delta_hydro-0.4.3.tar.gz |
|---|---|
| Size | 14.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9a905f10094e6b3291f2d976416d4281e8d9768d62c5fb40ff0f7adfb18df976
|
|
BLAKE2b-256 checksum How to use checksums |
ed26ec151305b01ef486b3e11b747a0375fd043882f1d2fceac170b79e43ebcd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.1
|
Release files / delta_hydro-0.4.3-py2.py3-none-any.whl
| Download URL | delta_hydro-0.4.3-py2.py3-none-any.whl |
|---|---|
| Size | 15.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
1318eb9688a573fdf589ac979c346dedd50b36810e4200bf1208e5effcfd9588
|
|
BLAKE2b-256 checksum How to use checksums |
549d45b03b5994587623f2c1ed1466e4b05147ac31caa41891aff2a2a0b81513
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.1
|