π¬ Question: How to convert an .avro file to a .csv file in Python?
Solution:
To convert an Avro file my_file.avro to a CSV file my_file.csv, create a CSV writer using the csv module and iterate over all rows using the iterator returned by fastavro.reader(). Then write each row to a file using the writerow() function.
Here’s an example:
from fastavro import reader
import csv
with open('my_file.avro', 'rb') as file_object:
csv_file = csv.writer(open("my_file.csv", "w+"))
head = True
for x in reader(file_object):
if head:
# write header
header = emp.keys()
csv_file.writerow(header)
head = False
# write normal row
csv_file.writerow(emp.values())Related: This code is a modified and improved version of this source.
π‘ Avro is a data serialization framework for RPCs (remote procedure calls) that uses JSON and binary format to serialize data.
π‘ CSV stands for comma-separated values, so you have a row-based file format where values are separated by commas, and the file is named using the suffix .csv.