我已将 AVRO 文件(带有 JSON 负载)从 Microsoft Azure 下载到我的 Windows 10 计算机:然后通过 pip 安装 python 3.8.5 和 avro 1.10.0 我尝试运行以下脚本:import os, avrofrom avro.datafile import DataFileReader, DataFileWriterfrom avro.io import DatumReader, DatumWriterreader = DataFileReader(open("48.avro", "rb"), DatumReader())for d in reader: print(d)reader.close()不幸的是,脚本没有打印任何内容。然后我四处搜索并尝试添加如下所示的架构:schema_str = """{ "type" : "record", "name" : "EventData", "namespace" : "Microsoft.ServiceBus.Messaging", "fields" : [ { "name" : "SequenceNumber", "type" : "long" }, { "name" : "Offset", "type" : "string" }, { "name" : "EnqueuedTimeUtc", "type" : "string" }, { "name" : "SystemProperties", "type" : { "type" : "map", "values" : [ "long", "double", "string", "bytes" ] } }, { "name" : "Properties", "type" : { "type" : "map", "values" : [ "long", "double", "string", "bytes", "null" ] } }, { "name" : "Body", "type" : [ "null", "bytes" ] } ]}"""schema = avro.schema.parse(schema_str)reader = DataFileReader(open("48.avro", "rb"), DatumReader(schema, schema))for d in reader: print(d)reader.close()但这并没有帮助,仍然没有打印任何内容。虽然我期待会打印字典对象列表......
1 回答
喵喔喔
TA贡献1735条经验 获得超5个赞
正如 OneCricketeer 建议使用 PySpark 读取 EventHub 生成的 avro 文件。此处,PySpark:反序列化 eventhub 捕获 avro 文件中包含的 Avro 序列化消息就是这样的示例。
添加回答
举报
0/150
提交
取消