我可以使用 avro-tools-1.7.7.jar 获取 json 数据和 avro 模式并输出二进制 Avro 文件,如下所示https://github.com/miguno/avro-cli-examples#json-to -avro。但是,我希望能够使用 Avro python api 以编程方式执行此操作:https ://avro.apache.org/docs/1.7.7/gettingstartedpython.html 。
在他们的示例中,他们展示了如何一次将记录写入二进制 avro 文件。
import avro.schema
from avro.datafile import DataFileReader, DataFileWriter
from avro.io import DatumReader, DatumWriter
schema = avro.schema.parse(open("user.avsc").read())
writer = DataFileWriter(open("users.avro", "w"), DatumWriter(), schema)
writer.append({"name": "Alyssa", "favorite_number": 256})
writer.append({"name": "Ben", "favorite_number": 7, "favorite_color": "red"})
writer.close()
我的用例是一次写入所有记录,就像 avro-tools jar 从 json 文件中所做的那样,只是在 python 代码中。我不想掏空并执行 jar。如果这很重要,这将被部署到 Google App Engine。