[
https://issues.apache.org/jira/browse/FLINK-36765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17900049#comment-17900049
]
david radley commented on FLINK-36765:
--------------------------------------
I was trying to find where the Avro specification says that multiple values are
allowed for the map values, do you know where this is documented as part of the
specification.
> 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
> Priority: Major
>
>
> 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)