from fastavro import writer, parse_schema # 1. Define the schema schema = { 'doc': 'name', 'name': 'name', 'namespace': 'name', 'type': 'record', 'fields': [ {'name': 'a', 'type': 'float'}, {'name': 'b', 'type': 'string'}, ... ] } parsed_schema = parse_schema(schema) # 2. Convert pd.DataFrame to records - list of dictionaries records = df.to_dict('records') # 3. Write to Avro file with open('file_name.avro', 'wb') as out: writer(out, parsed_schema, records)