使用Python反编译内存中的Avro数据

时间:2016-02-27 00:06:50

标签: apache-kafka apache-storm avro

我们正致力于将Storm与Kafka联系起来。

在我们的设置中,Kafka在Avro中存储消息。

我们正在使用名为“Pyleus”的Storm包装器,Avro以螺栓形式作为变量。

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

任何帮助,文档和/或示例都将受到赞赏。

1 个答案:

答案 0 :(得分: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)