如何用Python将Avro转换为CSV?

422 阅读1分钟

💬 问题:如何在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