avro record dtype fix (#12750)

This commit is contained in:
Onkar Ravgan 2023-08-04 14:27:29 +05:30 committed by GitHub
parent e7650f133d
commit 146d8a5166
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -21,11 +21,13 @@ from avro.schema import ArraySchema, RecordSchema, Schema, UnionSchema
from pydantic.main import ModelMetaclass from pydantic.main import ModelMetaclass
from metadata.generated.schema.entity.data.table import Column from metadata.generated.schema.entity.data.table import Column
from metadata.generated.schema.type.schema import DataTypeTopic, FieldModel from metadata.generated.schema.type.schema import FieldModel
from metadata.utils.logger import ingestion_logger from metadata.utils.logger import ingestion_logger
logger = ingestion_logger() logger = ingestion_logger()
RECORD_DATATYPE_NAME = "RECORD"
def _parse_array_children( def _parse_array_children(
arr_item: Schema, cls: ModelMetaclass = FieldModel arr_item: Schema, cls: ModelMetaclass = FieldModel
@ -138,11 +140,11 @@ def parse_record_fields(field: RecordSchema, cls: ModelMetaclass = FieldModel):
""" """
children = cls( children = cls(
name=field.name, name=field.name,
dataType=DataTypeTopic.RECORD, dataType=RECORD_DATATYPE_NAME,
children=[ children=[
cls( cls(
name=field.type.name, name=field.type.name,
dataType=DataTypeTopic.RECORD, dataType=RECORD_DATATYPE_NAME,
children=get_avro_fields(field.type, cls), children=get_avro_fields(field.type, cls),
description=field.type.doc, description=field.type.doc,
) )