Я нашел решение для этого. Я извлек типы данных поля в фрейме данных pandas и сохранил их под именем поля.
Сопоставил типы данных с avro-совместимыми типами данных ('object' в pandas -> 'string' в avro)
Создал шаблон схемы avro и поместил замещенные имена полей и типы данных в часть 'fields: []' и разместил его в реестре.
, например:
schema = {"type": "record",
"name": schemaName,
"fields": [
{"name": key, "type": value} for (key, value) in myDict.items()
]
}
Затем можно использовать библиотеку Fastavro для анализа этой схемы