пытаюсь преобразовать из 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
)