diff --git a/sdks/python/apache_beam/coders/row_coder.py b/sdks/python/apache_beam/coders/row_coder.py index dc473b1d6d7d..1becf408cfbf 100644 --- a/sdks/python/apache_beam/coders/row_coder.py +++ b/sdks/python/apache_beam/coders/row_coder.py @@ -161,6 +161,9 @@ def _nonnull_coder_from_type(field_type): return BytesCoder() elif type_info == "array_type": return IterableCoder(_coder_from_type(field_type.array_type.element_type)) + elif type_info == "iterable_type": + return IterableCoder( + _coder_from_type(field_type.iterable_type.element_type)) elif type_info == "map_type": return MapCoder( _coder_from_type(field_type.map_type.key_type), diff --git a/sdks/python/apache_beam/typehints/schemas.py b/sdks/python/apache_beam/typehints/schemas.py index 23cad5813458..de4cdb9fdf75 100644 --- a/sdks/python/apache_beam/typehints/schemas.py +++ b/sdks/python/apache_beam/typehints/schemas.py @@ -538,6 +538,10 @@ def typing_from_runner_api( return LogicalType.from_runner_api( fieldtype_proto.logical_type).language_type() + elif type_info == "iterable_type": + return Sequence[self.typing_from_runner_api( + fieldtype_proto.iterable_type.element_type)] + else: raise ValueError(f"Unrecognized type_info: {type_info!r}")