问题:如何在Python中把*.avro文件转换成.csv*文件?
解决方案
要将一个Avro文件my_file.avro 转为CSV文件my_file.csv ,使用csv 模块创建一个CSV写入器,并使用fastavro.reader() 返回的[迭代器]对所有行进行迭代。然后使用writerow() 函数将每一行写到文件中。
这里有一个例子。
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())
Avro是一个用于RPC(远程过程调用)的数据序列化框架,使用JSON和二进制格式来序列化数据。
CSV代表逗号分隔的值,所以你有一个基于行的文件格式,其中值由逗号分隔,文件使用后缀 。.csv