У меня есть Python 3.6 и установлен Avro 1.8.2 https://avro.apache.org/docs/1.8.2/gettingstartedpython.html для работы с файлами Avro
pip install avro-python3
Но я не смог найти вариант, как создать файл Avro за один разиз существующего списка словарей.
import avro.schema
from avro.datafile import DataFileWriter
from avro.io import DatumWriter
schema = avro.schema.Parse(open("user.avsc", "rb").read())
writer = DataFileWriter(open("users.avro", "wb"), DatumWriter(), schema)
writer.append({"name": "Alyssa", "favorite_number": 256})
writer.append({"name": "Ben", "favorite_number": 7, "favorite_color": "red"})
writer.close()
Предположим, у меня уже был объект списка:
l = [
{u'favorite_color': None, u'favorite_number': 256, u'name': u'Alyssa'},
{u'favorite_color': u'red', u'favorite_number': 7, u'name': u'Ben'}
]
Я не хочу добавлять его один за другим в цикле
for i in l:
writer.append(i)
Я хотел бы сделать это за один раз, так как fastavro lib может:
# Writing
with open('user.avro', 'wb') as out:
writer(out, parsed_schema, records)
Pls, как это можно сделать с помощью avro 1.8.2 lib