0

我在不同的目录中有两个 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 文件位于不同的目录中时,它不起作用。如果两个 avsc 文件位于不同的目录中,我需要在文件中进行哪些更改以便快速 avro 可以加载架构

4

1 回答 1

1

文档load_schema说它仅适用于同一目录中的文件。目前不可能做你想做的事。

于 2020-09-03T22:56:02.920 回答