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

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

    [ https://issues.apache.org/jira/browse/FLINK-25962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17539440#comment-17539440 ] 

Ryan Skraba commented on FLINK-25962:
-------------------------------------

Hello, this is probably more than a minor issue -- we're generating Avro data that is incompatible with Python readers.  The fix is pretty easy and having a namespace for Avro records is a pretty good practice.

> 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
>            Priority: Minor
>              Labels: auto-deprioritized-major, pull-request-available
>
> 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 the comment on FLINK-18096 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.7#820007)