我有一个 AVRO 模式,它目前位于单个 avsc 文件中,如下所示。现在我想将地址记录移动到另一个常见的 avsc 文件中,该文件应该从许多其他 avsc 文件中引用。所以客户和地址将是单独的 avsc 文件。如何将它们分开并让客户 avsc 文件参考地址 avsc 文件。另外如何使用python处理这两个文件。我目前在 python3 中使用快速 avro 来处理单个 avsc 文件,但打开以使用 python3 或 pyspark 中的任何其他实用程序。
文件名 - customer_details.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"
}
}
]
}
]
import fastavro
s1 = fastavro.schema.load_schema('customer_details.avsc')
如何将架构拆分到不同的文件中,地址记录文件可以从其他 avsc 文件中引用。那么我将如何使用快速 Avro (Python) 或任何其他 python 实用程序处理多个 avsc 文件?