Skip to main content

An update to ETL package that loads data from API, cleans and loads it to a csv

Project description

etl_package_maiyo008


A simple yet extensible Python ETL (Extract, Transform, Load) pipeline that supports loading data from Parquet files, performing basic transformations, and writing to a PostgreSQL database. Designed to be easily reusable and ideal for automation tasks.

📦 Installation

To install the package from PyPI:

pip install etl-package-maiyo008

🧠 Features

  • Extract data from Parquet files
  • Transform data by:
    • Removing duplicates
    • Dropping rows with blank fields
  • Load data into PostgreSQL with:
    • Chunked inserts for performance
    • Progress feedback via tqdm
  • Load data into a csv file
    • Separator is a comma
    • Creates the csv within the same working directory

📁 Project Structure

etl_package_maiyo008/
├── etl.py
├── __init__.py

🚀 Quickstart Guide

  1. Import the package
from etl_package_maiyo008.etl import Extract, Transform, Load
  1. Extract data

Exctract from a parquet file

df = Extract.load_parquet("data/sample_data.parquet")

Extract from an API

df = Extract.load_api(url)
  1. Transform data
df_clean = Transform.remove_duplicates(df)
df_clean = Transform.remove_blanks(df_clean)
  1. Load Data to PostgreSQL
conn = Load.connect_postgres(
    database="mydb",
    host="localhost",
    user="myuser",
    password="mypassword"
)

Load.write_to_db(df_clean, table_name="cleaned_data", conn=conn)
  1. Load Data to csv
Load.write_to_csv(df, filename)

📚 Method Reference

Extract Extract.load_parquet(path: str)

  • Loads a Parquet file into a pandas DataFrame.

Transform Transform.remove_duplicates(df: pd.DataFrame)

  • Removes duplicate rows from the DataFrame.

Transform.remove_blanks(df: pd.DataFrame)

  • Removes rows with missing/blank values.

Load Load.connect_postgres(database, host, user, password, port=5432)

  • Creates a connection to a PostgreSQL database using SQLAlchemy.

Load.write_to_db(df, table_name, conn, chunk_size=1000)

  • Writes the DataFrame to a PostgreSQL table in chunks, providing progress feedback.

⚠️ Requirements

  • pandas
  • psycopg2-binary
  • SQLAlchemy
  • tqdm
  • pyarrow or fastparquet (for Parquet support)

Install requirements with:

pip install pandas psycopg2-binary SQLAlchemy tqdm pyarrow

✅ License

  • MIT License

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

etl_package_maiyo008-0.0.2.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

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

etl_package_maiyo008-0.0.2-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file etl_package_maiyo008-0.0.2.tar.gz.

File metadata

  • Download URL: etl_package_maiyo008-0.0.2.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for etl_package_maiyo008-0.0.2.tar.gz
Algorithm Hash digest
SHA256 e17e5edafb0d725bc87927e810332a3ffcab313476c9d7f8cfb8065328639511
MD5 f80b40ca300850862ab458661d6e8ebd
BLAKE2b-256 2176ee9f933b26f74db43049d05846b8038806eb7431b8112fa5c8d0a3e9ae61

See more details on using hashes here.

File details

Details for the file etl_package_maiyo008-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for etl_package_maiyo008-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 61c959aff62059f4ff243b225e7a5f3a2399d410f03f396f1fd0cd938b5c1ca4
MD5 54a1a5c24aea4078041b0a3bcef10587
BLAKE2b-256 b6b2607d908245cb5001a61b0e4936ef10a4e860e7e07f28b2542c33394b1ec2

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