You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Brian Hulette (Jira)" <ji...@apache.org> on 2021/11/18 17:48:00 UTC
[jira] [Updated] (BEAM-13286) RowJson fails to serialize DATETIMEs produced by ZetaSQL
[ https://issues.apache.org/jira/browse/BEAM-13286?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brian Hulette updated BEAM-13286:
---------------------------------
Status: Open (was: Triage Needed)
> RowJson fails to serialize DATETIMEs produced by ZetaSQL
> --------------------------------------------------------
>
> Key: BEAM-13286
> URL: https://issues.apache.org/jira/browse/BEAM-13286
> Project: Beam
> Issue Type: Bug
> Components: dsl-sql
> Reporter: Brian Hulette
> Assignee: Brian Hulette
> Priority: P2
>
> [ZetaSqlBeamTranslationUtils|https://github.com/apache/beam/blob/48984603fb74736be2887474b43990b150a87132/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlBeamTranslationUtils.java#L254] creates joda.time.Instant instances for DATETIME fields. While [RowJson|https://github.com/apache/beam/blob/48984603fb74736be2887474b43990b150a87132/sdks/java/core/src/main/java/org/apache/beam/sdk/util/RowJson.java#L530] explicitly casts to DateTime when deserializing. This causes a ClassCastException for certain Beam SQL TableProviders (specifically any that use JsonPayloadSerializerProvider).
> {code}
> Caused by: java.lang.ClassCastException: org.joda.time.Instant cannot be cast to org.joda.time.DateTime
> at org.apache.beam.sdk.util.RowJson$RowJsonSerializer.writeValue(RowJson.java:530)
> at org.apache.beam.sdk.util.RowJson$RowJsonSerializer.writeRow(RowJson.java:495)
> at org.apache.beam.sdk.util.RowJson$RowJsonSerializer.serialize(RowJson.java:478)
> at org.apache.beam.sdk.util.RowJson$RowJsonSerializer.serialize(RowJson.java:453)
> at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
> ... 37 more
> {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)