gpt4 book ai didi

python - avro 格式,通过 python 寻找一个位置或跳过行

转载 作者:行者123 更新时间:2023-11-28 18:10:06 24 4
gpt4 key购买 nike

我正在使用 Apache Avro 1.8.2 读取大型 avro 文件。但是,我想跳过前“N”条记录或使用 5 个线程处理文件的各个部分。

有没有简单的方法在 avro 文件中查找而不导致数据损坏而不是按顺序循环每条记录?我相信它是可拆分格式,但我不确定 python avro 模块是否支持安全地跳转到特定位置。

目前我能做的就是逐行处理:

reader = DataFileReader(open("users.avro", "rb"), DatumReader())
i = 0
for user in reader:
i += 1
if (i>10000):
break

最佳答案

我不确定在标准 avro 库中有什么方法可以做到这一点,但在 fastavro 中有一个您应该能够使用的 block_reader 接口(interface)。

这可能如下所示:

import fastavro

with open("file.avro", "rb") as fp:
for block in fastavro.block_reader(fp, schema):
process_block(block)

process_block 是将在线程中运行的函数,它会执行如下操作:

def process_block(block):
for record in block:
process_record(record)

关于python - avro 格式,通过 python 寻找一个位置或跳过行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51200244/

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