пытаюсь преобразовать из python avro в fastavro с python kafka

Я использую python kafka, и расшифровка сообщений avro находится ниже:

avro_schema = avro.schema.parse(open('test.avsc', 'rb').read())  

def decode(m):
    decoder = avro.io.BinaryDecoder(io.BytesIO(m))
    return avro_reader.read(decoder)

consumer = KafkaConsumer(
    group_id=None,
    bootstrap_servers=['test:9094'],
    auto_offset_reset=offset,
    enable_auto_commit=False, 
    value_deserializer=lambda m: decode(m)
    )
consumer.subscribe(topics=topic_list)

Это работает

Я хочу попробовать fastavro, но не понимаю их документы.

Я так понимаю, что могу загрузить схему, как показано ниже:

 parsed_schema = load_schema('test.avsc')

Но как мне разобрать в строке json библиотеку python avro, которая декодирует и читает?

Что такое быстрое avro, эквивалентное приведенному ниже?

decoder = avro.io.BinaryDecoder(io.BytesIO(m))
return avro_reader.read(decoder)

благодаря

PS Решено:

https://medium.com/@abrarsheikh/benchmarking-avro-and-fastavro-using-pytest-benchmark-tox-and-matplotlib-bd7a83964453

stringio = BytesIO(m)
return fastavro.schemaless_reader(
            stringio,
            parsed_schema
)

0 ответов

Другие вопросы по тегам