размер файла стрелки такой же, как у csv? - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь сохранить фрейм данных в формате .arrow, в основном, чтобы получить лучший размер, чем CSV, чтобы использовать этот файл для vega-lite

Я использую python

import pandas
import pyarrow as pa
csv="C:/Users/mimoune.djouallah/data.csv"
arrow ="C:/Users/mimoune.djouallah/file.arrow"
dataset = pandas.read_csv(csv)

table = pa.Table.from_pandas(dataset)
writer = pa.RecordBatchFileWriter(arrow, table.schema)
writer.write(table)
writer.close()

Я ожидал, что файл стрелки будет меньше, чем CSV, сейчас стрелка немного больше

Я попытался экспортировать с использованием паркета, и результат, как и ожидалось,

оригинал CSV: 4,4 МБ стрелка:4,9 МБ паркета: 1,6 МБ PowerBI (просто для справки): 1,7 МБ

1 Ответ

1 голос
/ 31 марта 2019

Формат Arrow направлен не на оптимизацию размера хранилища, а на его производительность. В отличие от CSV, данные хранятся в двоичном виде для устранения накладных расходов при разборе данных. Но поскольку производительность имеет решающее значение, данные не сжимаются и не кодируются.

Если вы хотите хранить данные эффективно, но с меньшим размером, вам стоит взглянуть на Apache Parquet. Данные хранятся так же, как и Arrow, но с некоторыми эффективными методами для уменьшения размера хранилища.

...