2016-02-27 88 views
0

我们正在将Storm与Kafka连接。使用Python反序列化内存中的Avro数据

在我们的设置中,Kafka在Avro存储邮件。

我们使用名为“Pyleus”的Storm包装,并将Avro作为变量插入。

问题: 如何使用任何Python-Avro模块将变量中的Avro数据反序列化?有很多例子直接在.avro文件中反序列化Avro。但是,我们的用例具有性能要求,所以我们不能先写入文件然后解析。

任何帮助,文件和/或例子将不胜感激。

+0

看看这可以帮助你https://groups.google.com/forum/#!topic/confluent-platform/A7B6uSnJa5k – Nautilus

+0

感谢您的评论! – howard

回答

0

假设您已将模式加载到'模式'中,并且您将avro数据转换为'raw_bytes'。下面可能有助于

bytes_reader = io.BytesIO(raw_bytes) 
decoder = avro.io.BinaryDecoder(bytes_reader) 
reader = avro.io.DatumReader(schema) 
decoded_data = reader.read(decoder)