From 15cbd1646cd163118bd3f899b9f52c248866494e Mon Sep 17 00:00:00 2001 From: Yurii Havrylko Date: Thu, 4 Jan 2024 21:47:52 +0100 Subject: [PATCH] added data file format benchmark --- README.md | 25 +++++++++++++++++++++- app/requirements-dev.txt | 2 ++ assets/format_benchmark.png | Bin 0 -> 100565 bytes benchmarks/data_formats.py | 40 ++++++++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 assets/format_benchmark.png create mode 100644 benchmarks/data_formats.py diff --git a/README.md b/README.md index 7937a4b..b699135 100644 --- a/README.md +++ b/README.md @@ -54,4 +54,27 @@ kubectl create -f deployment/minio.yml Run tests ``` pytest app/tests/ -``` \ No newline at end of file +``` + +### Benchmarks + +Fileformats + +![Alt text](assets/format_benchmark.png) + +| Format | Avg Write Time (s) | Avg Read Time (s) | File Size after Write (MB) | +|----------|--------------------|-------------------|----------------------------| +| CSV | 0.906960 | 0.174510 | 5.649742 | +| JSON | 0.386252 | 1.161783 | 16.038124 | +| PARQUET | 0.061314 | 0.016811 | 1.507380 | +| ORC | 0.167490 | 0.016776 | 6.998336 | + + + +CSV format shows relatively slower write times compared to other formats, with a moderate file size after write. + +JSON format demonstrates faster write times but slower read times compared to other formats, with the largest file size after write. + +PARQUET format showcases the fastest write times and relatively fast read times, with a smaller file size after write compared to CSV and JSON. + +ORC format exhibits moderate write times and the smallest file size after write among the tested formats, with efficient read times. diff --git a/app/requirements-dev.txt b/app/requirements-dev.txt index c5bbb1f..25db5c8 100644 --- a/app/requirements-dev.txt +++ b/app/requirements-dev.txt @@ -1,3 +1,5 @@ -r requirements.txt pytest==7.4.4 pytest-mock==3.12.0 +datasets==2.16.1 +pandas==2.1.4 diff --git a/assets/format_benchmark.png b/assets/format_benchmark.png new file mode 100644 index 0000000000000000000000000000000000000000..b9e96d946c07634eb7013dd7b35d5a2f0929ab81 GIT binary patch literal 100565 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%0DHwXj?NK%$ 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 Rge)ESm>OFd)f=Fq{{v}pKr#RT literal 0 HcmV?d00001 diff --git a/benchmarks/data_formats.py b/benchmarks/data_formats.py new file mode 100644 index 0000000..fd95b24 --- /dev/null +++ b/benchmarks/data_formats.py @@ -0,0 +1,40 @@ +from datasets import load_dataset +import pandas as pd +import timeit +import os + +dataset = load_dataset("inria-soda/tabular-benchmark", 'clf_cat_albert') + +df = pd.DataFrame(dataset['train']) + +file_formats = { + 'csv': { + 'write': lambda df: df.to_csv('sample.csv', index=False), + 'read': lambda: pd.read_csv('sample.csv') + }, + 'json': { + 'write': lambda df: df.to_json('sample.json', orient='records'), + 'read': lambda: pd.read_json('sample.json') + }, + 'parquet': { + 'write': lambda df: df.to_parquet('sample.parquet', index=False), + 'read': lambda: pd.read_parquet('sample.parquet') + }, + 'orc': { + 'write': lambda df: df.to_orc('sample.orc', index=False), + 'read': lambda: pd.read_orc('sample.orc') + } +} + +for format, methods in file_formats.items(): + print(f"Testing for {format.upper()} format:") + + write_time = timeit.timeit(lambda: methods['write'](df), number=10) + read_time = timeit.timeit(methods['read'], number=10) + + write_file_size = os.path.getsize(f'sample.{format}') / (1024 * 1024) # Convert bytes to MB + + print(f"Average time taken to write: {write_time / 10:.6f} seconds") + print(f"Average time taken to read: {read_time / 10:.6f} seconds") + print(f"File size after write: {write_file_size:.6f} MB") + print("\n")