Maneendra created FLINK-36765: --------------------------------- Summary: How to Handle Multi-Type Maps in Avro Schema with Flink Table API? Key: FLINK-36765 URL: https://issues.apache.org/jira/browse/FLINK-36765 Project: Flink Issue Type: Bug Components: API / Type Serialization System, Formats (JSON, Avro, Parquet, ORC, SequenceFile) Reporter: Maneendra
I have a Map with multiple data types in my Avro schema, which I am trying to use in the Flink Table API to read data from Kafka. However, I’m encountering the following exception because the Flink AvroSchemaConverter does not support Maps with mixed data types. Could someone assist me in parsing this schema using the Table API? FLink Code: String avroSchema="................"; DataType s = AvroSchemaConverter.convertToDataType(avroSchema); Schema schema1 = Schema.newBuilder().fromRowDataType(s).build(); TableDescriptor descriptor = TableDescriptor.forConnector("kafka") .schema(schema) .comment("simple comment") .option("topic", "****") .option("properties.application.id", "****") .option("properties.security.protocol", "********") .option("properties.bootstrap.servers", "********") .option("properties.group.id", "********") .option("properties.auto.offset.reset", "earliest") .option("format", "avro") .build(); Avro Schema: { "name":"standByProperties", "type":[ "null", { "type":"map", "values":[ "null", "boolean", "int" ] } ] }, Output: standByProperties MAP<STRING NOT NULL, RAW('java.lang.Object', ?) NOT NULL> Exception: Exception in thread "main" java.lang.UnsupportedOperationException: Unsupported to derive Schema for type: RAW('java.lang.Object', ?) NOT NULL at org.apache.flink.formats.avro.typeutils.AvroSchemaConverter.convertToSchema(AvroSchemaConverter.java:580) at org.apache.flink.formats.avro.typeutils.AvroSchemaConverter.convertToSchema(AvroSchemaConverter.java:416) at org.apache.flink.formats.avro.typeutils.AvroSchemaConverter.convertToSchema(AvroSchemaConverter.java:568) at org.apache.flink.formats.avro.typeutils.AvroSchemaConverter.convertToSchema(AvroSchemaConverter.java:549) at org.apache.flink.formats.avro.typeutils.AvroSchemaConverter.convertToSchema(AvroSchemaConverter.java:416) What I Tried: I defined an Avro schema that includes a Map field with values of mixed data types. Used the Flink Table API to read data from Kafka and attempted to use AvroSchemaConverter to map the schema to a Flink table. During execution, I encountered an exception because the AvroSchemaConverter does not support Maps with multiple value types. What I Was Expecting: I was expecting Flink to handle the Map field and correctly parse the data into a table format, with proper support for the mixed data types within the Map. -- This message was sent by Atlassian Jira (v8.20.10#820010)