Обработка нескольких 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 говорит, что это работает только для файлов в том же каталоге. В настоящее время невозможно делать то, что вы хотите.

Другие вопросы по тегам