使用 Python 反序列化内存中的 Avro 数据
Deserialize Avro Data In Memory Using Python
我们正在努力将 Storm 与 Kafka 连接起来。
在我们的设置中,Kafka 在 Avro 中存储消息。
我们正在使用名为 "Pyleus" 的 Storm 包装器,Avro 作为变量进入 bolt。
问题:
如何使用任何 Python-Avro 模块反序列化变量中的 Avro 数据?有大量直接在 .avro 文件中反序列化 Avro 的示例。但是,我们的用例有性能要求,因此我们不能先写入文件再解析。
任何帮助、文档and/or示例将不胜感激。
假设您已将架构加载到 'schema' 并且您已将 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)
我们正在努力将 Storm 与 Kafka 连接起来。
在我们的设置中,Kafka 在 Avro 中存储消息。
我们正在使用名为 "Pyleus" 的 Storm 包装器,Avro 作为变量进入 bolt。
问题: 如何使用任何 Python-Avro 模块反序列化变量中的 Avro 数据?有大量直接在 .avro 文件中反序列化 Avro 的示例。但是,我们的用例有性能要求,因此我们不能先写入文件再解析。
任何帮助、文档and/or示例将不胜感激。
假设您已将架构加载到 'schema' 并且您已将 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)