Data engineering utilities for converting and querying data files
Project description
DataEngX
Data engineering utilities for converting between CSV, Parquet, JSONL, and more.
Features
- ✅ Convert Parquet to CSV
- ✅ Convert CSV to JSON (flat + nested)
- ✅ Split Parquet to multiple CSV chunks
- ✅ CSV to SQLite database
- ✅ Parquet to JSONL
- ✅ JSONL to CSV
- ✅ SQL-like querying on CSV using DuckDB
- ✅ Export DataFrame to multiple formats (CSV, Parquet, JSON)
Installation
pip install .
CLI Usage
Convert Parquet to CSV
dataengx parquet-to-csv path/to/input.parquet output/ --filename optional_filename
Convert CSV to JSON
dataengx csv-to-json path/to/input.csv path/to/output.json
More CLI commands coming soon...
Python Usage
from dataengx import (
convert_parquet_to_csv,
csv_to_json,
csv_to_nested_json,
split_parquet_to_csv,
csv_to_sqlite,
parquet_to_jsonl,
jsonl_to_csv,
query_csv_with_sql,
export_dataframe
)
# Convert Parquet to CSV
convert_parquet_to_csv("data/data.parquet", "output/")
# Convert CSV to flat JSON
csv_to_json("data/data.csv", "output/data.json")
# Convert CSV to nested JSON
csv_to_nested_json("data/nested.csv", "output/nested.json")
# Split Parquet to multiple CSV files
split_parquet_to_csv("data/big.parquet", "output/splits", row_limit=5000)
# Convert CSV to SQLite database
csv_to_sqlite("data/input.csv", "output/output.sqlite")
# Convert Parquet to JSONL
parquet_to_jsonl("data/input.parquet", "output/data.jsonl")
# Convert JSONL to CSV
jsonl_to_csv("data/input.jsonl", "output/data.csv")
# Query CSV like SQL
query_csv_with_sql("SELECT * FROM 'data.csv' WHERE age > 25", csv_path="data/data.csv")
# Export a DataFrame to CSV
import pandas as pd
df = pd.DataFrame({"name": ["Alice", "Bob"], "age": [30, 25]})
export_dataframe(df, "output", "people", fmt="csv")
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
dataengx-0.1.0.tar.gz
(4.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dataengx-0.1.0.tar.gz.
File metadata
- Download URL: dataengx-0.1.0.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9328f9ba7ed3bafd22c2b69ef054386923683dc983bea4fdb5a6d0c6c851e5ba
|
|
| MD5 |
d51f2d5d7b0c4589030eef4a200fdee0
|
|
| BLAKE2b-256 |
3d7b35d8d636d5265b806288eef4aa43bf25369515513be1e1ff1cfb225a7209
|
File details
Details for the file dataengx-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dataengx-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
992949f8166399389ed5304f69a4cb78d32be2bb0c115a7f78ad4f9d16256080
|
|
| MD5 |
f3f6a02f715bb5ac4732cd47708fe488
|
|
| BLAKE2b-256 |
5653ec2d03f9e6c65c8f503ee8f133b83e33d29484dd1a09302852ee9fbcdb02
|