Обработка нескольких AVRO (файлов avsc), которые находятся в разных каталогах и ссылаются друг на друга с помощью python (fastavro)
У меня есть два файла avsc в разных каталогах -
1. com.company.model.AddressRecord.avsc
2. com.company.model.Customer.avsc
Вот адресный файл
{
"type": "record",
"namespace": "com.company.model",
"name": "AddressRecord",
"fields": [
{
"name": "streetaddress",
"type": "string"
},
{
"name": "city",
"type": "string"
},
{
"name": "state",
"type": "string"
},
{
"name": "zip",
"type": "string"
}
]
}
вот файл клиента, который является родительской схемой (верхнего уровня)
{
"namespace": "com.company.model",
"type": "record",
"name": "Customer",
"fields": [
{
"name": "firstname",
"type": "string"
},
{
"name": "lastname",
"type": "string"
},
{
"name": "email",
"type": "string"
},
{
"name": "phone",
"type": "string"
},
{
"name": "address",
"type": {
"type": "array",
"items": "com.company.model.AddressRecord"
}
}
]
}
Я могу загружать файлы с помощью fastavro, когда оба файла находятся в одном каталоге
fastavro.schema.load_schema('com.company.model.Customer.avsc')
Но это не работает, когда оба файла avsc находятся в разных каталогах. Какие изменения мне нужно сделать в файлах, чтобы быстрый avro мог загрузить схему, если оба файла avsc находятся в разных директориях
1 ответ
Документацияload_schema
говорит, что это работает только для файлов в том же каталоге. В настоящее время невозможно делать то, что вы хотите.