Skip to main content

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


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)

Uploaded Source

Built Distribution

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

dataengx-0.1.0-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

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

Hashes for dataengx-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9328f9ba7ed3bafd22c2b69ef054386923683dc983bea4fdb5a6d0c6c851e5ba
MD5 d51f2d5d7b0c4589030eef4a200fdee0
BLAKE2b-256 3d7b35d8d636d5265b806288eef4aa43bf25369515513be1e1ff1cfb225a7209

See more details on using hashes here.

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

Hashes for dataengx-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 992949f8166399389ed5304f69a4cb78d32be2bb0c115a7f78ad4f9d16256080
MD5 f3f6a02f715bb5ac4732cd47708fe488
BLAKE2b-256 5653ec2d03f9e6c65c8f503ee8f133b83e33d29484dd1a09302852ee9fbcdb02

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