arjun4084346 commented on a change in 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_r344300396
##########
File path:
gobblin-core/src/main/java/org/apache/gobblin/converter/avro/JsonElementConversionWithAvroSchemaFactory.java
##########
@@ -210,4 +216,70 @@ public Schema schema() {
return this.schema;
}
}
-}
+
+ public static class UnionConverter extends ComplexConverter {
+ private final List<Schema> schemas;
+ private final List<JsonElementConverter> converters;
+ private final Schema schemaNode;
+
+ public UnionConverter(String fieldName, boolean nullable, String
sourceType, Schema schemaNode,
+ WorkUnitState state, List<String> ignoreFields) throws
UnsupportedDateTypeException {
+ super(fieldName, nullable, sourceType);
+ this.schemas = schemaNode.getTypes();
+ converters = new ArrayList<>();
+ for(Schema schema: schemas) {
+ converters.add(getConvertor(fieldName, schema.getType().getName(),
schemaNode, state, isNullable(), ignoreFields));
Review comment:
If you are going to add support for multiple types inside a `union` in this
PR, you need to make changes
https://github.com/apache/incubator-gobblin/blob/master/gobblin-core/src/main/java/org/apache/gobblin/converter/avro/JsonRecordAvroSchemaToAvroConverter.java#L93
also. This is the place where it tries to process a union when it is at the
first level in a `Record`, i.e. not inside a map or array.
----------------------------------------------------------------
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]
With regards,
Apache Git Services