public CollectionConverter(JsonSchema collectionSchema, InputType elementType, boolean repeated) { super(collectionSchema); this.elementType = elementType; this.elementConverter = getConverter(getElementSchema(), repeated); this.schema = buildSchema(); }
public JsonElementConverter getKeyConverter() { JsonSchema jsonSchema = JsonSchema.buildBaseSchema(STRING); jsonSchema.setColumnName(MAP_KEY_COLUMN_NAME); return getConverter(jsonSchema, false); } }
private Type buildSchema() { JsonArray inputSchema = this.jsonSchema.getDataTypeValues(); List<Type> parquetTypes = new ArrayList<>(); for (JsonElement element : inputSchema) { JsonObject map = (JsonObject) element; JsonSchema elementSchema = new JsonSchema(map); String columnName = elementSchema.getColumnName(); JsonElementConverter converter = JsonElementConversionFactory.getConverter(elementSchema, false); Type schemaType = converter.schema(); this.converters.put(columnName, converter); parquetTypes.add(schemaType); } String docName = this.jsonSchema.getColumnName(); switch (recordType) { case ROOT: return new MessageType(docName, parquetTypes); case CHILD: return new GroupType(this.jsonSchema.optionalOrRequired(), docName, parquetTypes); default: throw new RuntimeException("Unsupported Record type"); } }
public CollectionConverter(JsonSchema collectionSchema, InputType elementType, boolean repeated) { super(collectionSchema); this.elementType = elementType; this.elementConverter = getConverter(getElementSchema(), repeated); this.schema = buildSchema(); }
public JsonElementConverter getKeyConverter() { JsonSchema jsonSchema = JsonSchema.buildBaseSchema(STRING); jsonSchema.setColumnName(MAP_KEY_COLUMN_NAME); return getConverter(jsonSchema, false); } }
private Type buildSchema() { JsonArray inputSchema = this.jsonSchema.getDataTypeValues(); List<Type> parquetTypes = new ArrayList<>(); for (JsonElement element : inputSchema) { JsonObject map = (JsonObject) element; JsonSchema elementSchema = new JsonSchema(map); String columnName = elementSchema.getColumnName(); JsonElementConverter converter = JsonElementConversionFactory.getConverter(elementSchema, false); Type schemaType = converter.schema(); this.converters.put(columnName, converter); parquetTypes.add(schemaType); } String docName = this.jsonSchema.getColumnName(); switch (recordType) { case ROOT: return new MessageType(docName, parquetTypes); case CHILD: return new GroupType(this.jsonSchema.optionalOrRequired(), docName, parquetTypes); default: throw new RuntimeException("Unsupported Record type"); } }