[
https://issues.apache.org/jira/browse/GOBBLIN-933?focusedWorklogId=340664&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-340664
]
ASF GitHub Bot logged work on GOBBLIN-933:
------------------------------------------
Author: ASF GitHub Bot
Created on: 08/Nov/19 18:28
Start Date: 08/Nov/19 18:28
Worklog Time Spent: 10m
Work Description: autumnust commented on pull request #2800:
[GOBBLIN-933] add support for array of unions in json schema_new
URL: https://github.com/apache/incubator-gobblin/pull/2800#discussion_r344307288
##########
File path:
gobblin-core/src/main/java/org/apache/gobblin/converter/avro/JsonElementConversionWithAvroSchemaFactory.java
##########
@@ -210,4 +217,116 @@ public Schema schema() {
return this.schema;
}
}
-}
+
+ /**
+ * A converter to convert Union type to avro
+ * Here it will try all the possible converters for one type, for example,
to convert an int value, it will try all Number converters
Review comment:
Long story short: "there's no guarantee on preserving precision from Json to
Avro type as the exact type information is clear from JsonElement"
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 340664)
> JsonRecordAvroSchemaToAvroConverter does not handle arrays of unions
> --------------------------------------------------------------------
>
> Key: GOBBLIN-933
> URL: https://issues.apache.org/jira/browse/GOBBLIN-933
> Project: Apache Gobblin
> Issue Type: Bug
> Reporter: Ahmed Abdul Hamid
> Priority: Major
> Time Spent: 6h
> Remaining Estimate: 0h
>
> Using {{JsonRecordAvroSchemaToAvroConverter}} to convert an array of a union
> type fails. For instance, using it with the following Avro schema:
> {code:java}
> {
> "name": "arrayField",
> "type": {
> "type": "array",
> "items": ["string", "null"]
> }
> } {code}
> yields the following error:
> {code:java}
> java.lang.StackOverflowError
> at org.apache.gobblin.configuration.State.getProp(State.java)
> at
> org.apache.gobblin.configuration.WorkUnitState.getProp(WorkUnitState.java:333)
> at
> org.apache.gobblin.converter.avro.JsonElementConversionFactory.getConvertor(JsonElementConversionFactory.java:106)
> at
> org.apache.gobblin.converter.avro.JsonElementConversionFactory$UnionConverter.getConverter(JsonElementConversionFactory.java:737)
> at
> org.apache.gobblin.converter.avro.JsonElementConversionFactory$UnionConverter.<init>(JsonElementConversionFactory.java:729)
> at
> org.apache.gobblin.converter.avro.JsonElementConversionFactory.getConvertor(JsonElementConversionFactory.java:160)
> at
> org.apache.gobblin.converter.avro.JsonElementConversionFactory$UnionConverter.getConverter(JsonElementConversionFactory.java:737)
> at
> org.apache.gobblin.converter.avro.JsonElementConversionFactory$UnionConverter.<init>(JsonElementConversionFactory.java:729)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)