Skip to main content
https://travis-ci.org/MacHu-GWU/s3splitmerge-project.svg?branch=master https://codecov.io/gh/MacHu-GWU/s3splitmerge-project/branch/master/graph/badge.svg https://img.shields.io/pypi/v/s3splitmerge.svg https://img.shields.io/pypi/l/s3splitmerge.svg https://img.shields.io/pypi/pyversions/s3splitmerge.svg https://img.shields.io/badge/STAR_Me_on_GitHub!--None.svg?style=social
https://img.shields.io/badge/Link-Document-blue.svg https://img.shields.io/badge/Link-API-blue.svg https://img.shields.io/badge/Link-Source_Code-blue.svg https://img.shields.io/badge/Link-Install-blue.svg https://img.shields.io/badge/Link-GitHub-blue.svg https://img.shields.io/badge/Link-Submit_Issue-blue.svg https://img.shields.io/badge/Link-Request_Feature-blue.svg https://img.shields.io/badge/Link-Download-blue.svg

Welcome to s3splitmerge Documentation

Features

Split:

  • split big data file on (>=500MB) in common data format CSV, TSV, JSON into

Install

pip install awswrangler==2.10.0 --no-deps

s3splitmerge is released on PyPI, so all you need is:

$ pip install s3splitmerge

To upgrade to latest version:

$ pip install --upgrade s3splitmerge

Merge Multiple AWS S3 Json File into One Big

1. Input Data

Files:

s3://my-bucket/input/date=2000-01-01/a.json # 6MB
s3://my-bucket/input/date=2000-01-01/b.json # 600MB
s3://my-bucket/input/date=2000-01-01/c.json # 120MB
s3://my-bucket/input/date=2000-01-02/...
...

Content:

{"id": 1, "value": "a", ...}
{"id": 2, "value": "b", ...}
{"id": 3, "value": "c", ...}
  1. Normalize file size to approximately 6MB. If smaller than 6MB, keep it as it is:

    s3://my-bucket/input-normalized/date=2000-01-01/a-1.json # 6MB
    
    s3://my-bucket/input-normalized/date=2000-01-01/b-1.json # 6MB
    s3://my-bucket/input-normalized/date=2000-01-01/b-2.json # 6MB
    ...
    s3://my-bucket/input-normalized/date=2000-01-01/b-100.json # 6MB
    
    s3://my-bucket/input-normalized/date=2000-01-01/c-1.json # 6MB
    s3://my-bucket/input-normalized/date=2000-01-01/c-2.json # 6MB
    ...
    s3://my-bucket/input-normalized/date=2000-01-01/c-20.json # 6MB
  2. Performance per file ETL using AWS Lambda:

    s3://my-bucket/output-normalized/date=2000-01-01/a-1.parquet # 6MB
    
    s3://my-bucket/output-normalized/date=2000-01-01/b-1.parquet # 6MB
    s3://my-bucket/output-normalized/date=2000-01-01/b-2.parquet # 6MB
    ...
    s3://my-bucket/output-normalized/date=2000-01-01/b-100.parquet # 6MB
    
    s3://my-bucket/output-normalized/date=2000-01-01/c-1.parquet # 6MB
    s3://my-bucket/output-normalized/date=2000-01-01/c-2.parquet # 6MB
    ...
    s3://my-bucket/output-normalized/date=2000-01-01/c-20.parquet # 6MB
  3. Merge file into Bigger one for better Athena Query performance:

    s3://my-bucket/output-normalized/date=2000-01-01/part-1.parquet # 500MB
    s3://my-bucket/output-normalized/date=2000-01-01/part-2.parquet # 500MB
    ...

Metadata

Release files for s3splitmerge 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for s3splitmerge 0.0.1
File Size Uploaded
s3splitmerge-0.0.1.tar.gz 24.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for s3splitmerge 0.0.1
File Interpreter ABI Platform
s3splitmerge-0.0.1-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 51.9 kB

Release files / s3splitmerge-0.0.1.tar.gz

Download URL s3splitmerge-0.0.1.tar.gz
Size 24.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fd19359ff8bd31ad64b626b131b71c9e8e217c2412efa477f5019e68ff9b6ab6
BLAKE2b-256 checksum
How to use checksums
c5618cd4146d802824eec017f79cb6965ed5ad68c2473d0a3f413a4466d81aed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.6

Release files / s3splitmerge-0.0.1-py2.py3-none-any.whl

Download URL s3splitmerge-0.0.1-py2.py3-none-any.whl
Size 27.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
6a40ab311e40af111412ec27a2abdce1a358e174ca1699fbd14a5400a5fe9a61
BLAKE2b-256 checksum
How to use checksums
f93d812408eabd26c1cf73317731660fa0a557309952841428a466c35598848b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.6

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page