gpt4 book ai didi

python - 在 Python 中逐行写入 Parquet

转载 作者:行者123 更新时间:2023-12-05 02:44:04 61 4
gpt4 key购买 nike

我在异步循环中获取消息,并从每条消息中解析 row 这是字典。我想将这些行写入 Parquet 。为实现这一点,我执行以下操作:

fields = [('A', pa.float64()), ('B', pa.float64()), ('C', pa.float64()), ('D', pa.float64())]
schema = pa.schema(fields)
pqwriter = pq.ParquetWriter('sample.parquet', schema=schema, compression='gzip')

#async cycle starts here
async for message in messages:
row = {'A': message[1], 'B': message[2], 'C': message[3], 'D': message[4]}
table = pa.Table.from_pydict(row)
pqwriter.write_table(table)
#end of async cycle
pqwriter.close()

一切都很完美,但是生成的 parquet 文件大小约为 5 Mb,而如果我执行写入 csv 文件,我得到的文件大小约为 200 Kb。我检查过数据类型是否相同(csv 的列是 floatt,parquet 的列是 float)

为什么我的 parquet 比具有相同数据的 csv 大得多?

最佳答案

Parquet 是一种专为批量写入数据而优化的柱状格式。它并不意味着用于逐行写入数据。

它不太适合您的用例。您可能希望以更合适的格式(例如 avro、csv)写入中间行数据,然后将数据批量转换为 parquet。

关于python - 在 Python 中逐行写入 Parquet ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66579018/

61 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com