You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Ryan Skraba (Jira)" <ji...@apache.org> on 2022/02/04 17:12:00 UTC

[jira] [Created] (FLINK-25962) Flink generated Avro schemas can't be parsed using Python

Ryan Skraba created FLINK-25962:
-----------------------------------

             Summary: Flink generated Avro schemas can't be parsed using Python
                 Key: FLINK-25962
                 URL: https://issues.apache.org/jira/browse/FLINK-25962
             Project: Flink
          Issue Type: Bug
    Affects Versions: 1.14.3
            Reporter: Ryan Skraba


Flink currently generates Avro schemas as records with the top-level name {{"record"}}

Unfortunately, there is some inconsistency between Avro implementations in different languages that may prevent this record from being read, notably Python, which generates the error:
avro.schema.SchemaParseException: record is a reserved type name
(See this comment for the full stack trace).

The Java SDK accepts this name, and there's an [ongoing discussion|https://lists.apache.org/thread/0wmgyx6z69gy07lvj9ndko75752b8cn2] about what the expected behaviour should be.  This should be clarified and fixed in Avro, of course.

Regardless of the resolution, the best practice (which is used almost everywhere else in the Flink codebase) is to explicitly specify a top-level namespace for an Avro record.   We should use a default like: {{{}org.apache.flink.avro.generated{}}}.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)