-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Closed
Bug
Copy link
Description
What happened?
Our conversion logic needs to be more nuanced for collection types (i.e. Arrays, Iterables, Maps)
Beam to Iceberg:
beam/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/IcebergUtils.java
Lines 430 to 434 in 5b862dd
| case ARRAY: | |
| case ITERABLE: | |
| case MAP: | |
| rowBuilder.addValue(icebergValue); | |
| break; |
Iceberg to Beam:
beam/sdks/java/io/iceberg/src/main/java/org/apache/beam/sdk/io/iceberg/IcebergUtils.java
Lines 348 to 353 in 5b862dd
| case LIST: | |
| Optional.ofNullable(value.getArray(name)).ifPresent(list -> rec.setField(name, list)); | |
| break; | |
| case MAP: | |
| Optional.ofNullable(value.getMap(name)).ifPresent(v -> rec.setField(name, v)); | |
| break; |
We need to inspect the collection type and recurse if it's a struct.
Issue Priority
Priority: 2 (default / most bugs should be filed as P2)
Issue Components
- Component: Python SDK
- Component: Java SDK
- Component: Go SDK
- Component: Typescript SDK
- Component: IO connector
- Component: Beam YAML
- Component: Beam examples
- Component: Beam playground
- Component: Beam katas
- Component: Website
- Component: Infrastructure
- Component: Spark Runner
- Component: Flink Runner
- Component: Samza Runner
- Component: Twister2 Runner
- Component: Hazelcast Jet Runner
- Component: Google Cloud Dataflow Runner