TheNeuralBit commented on a change in pull request #13671:
URL: https://github.com/apache/beam/pull/13671#discussion_r554212074
##########
File path:
sdks/java/core/src/main/java/org/apache/beam/sdk/schemas/utils/ConvertHelpers.java
##########
@@ -78,12 +83,15 @@ public ConvertedSchemaInformation(
public static <T> ConvertedSchemaInformation<T>
getConvertedSchemaInformation(
Schema inputSchema, TypeDescriptor<T> outputType, SchemaRegistry
schemaRegistry) {
ConvertedSchemaInformation<T> convertedSchema = null;
- boolean toRow = outputType.equals(TypeDescriptor.of(Row.class));
- if (toRow) {
+ if (outputType.equals(TypeDescriptor.of(Row.class))) {
// If the output is of type Row, then just forward the schema of the
input type to the
// output.
convertedSchema =
new ConvertedSchemaInformation<>((SchemaCoder<T>)
SchemaCoder.of(inputSchema), null);
+ } else if (outputType.equals(TypeDescriptor.of(GenericRecord.class))) {
+ convertedSchema =
+ new ConvertedSchemaInformation<T>(
+ (SchemaCoder<T>)
AvroUtils.schemaCoder(AvroUtils.toAvroSchema(inputSchema)), null);
Review comment:
Hm it seems like this should be generalized somehow so we don't need to
have if blocks for converting to every "dynamic" class. For example we might
want something similar for protobuf's DynamicMessage. Something pluggable like
SchemaProvider, but for making conversions to/from other dynamic row types.
This is fine for now, but maybe drop a TODO and jira about generalizing?
----------------------------------------------------------------
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]