Если вы хотите сделать это с помощью библиотеки fastavro
, вы сначала должны прочитать файл avro, чтобы получить схему и содержащиеся в ней записи:
import fastavro
with open('file.avro', 'rb') as fo:
avro_reader = fastavro.reader(fo)
schema = avro_reader.writer_schema
records = list(avro_reader)
Затем измените schema
, добавив новое поле:
schema["fields"].append({
"name": "timestamp",
"type": "long",
})
Дополните записи, добавив новое значение timestamp
:
for record in records:
record["timestamp"] = new_timestamp
И, наконец, запишите новый файл avro:
with open('new_file.avro', 'wb') as out:
fastavro.writer(out, schema, records)
Возможно, вы захотите использовать логический тип для этого значения.См. спецификацию avro для получения более подробной информации.