此问题通常是在使用自定义编码器(Coder)时出现的。解决方法是确保自定义编码器与数据类型兼容,并将其正确地注册到您的管道(Pipeline)中。以下是一个示例,解决了Row Coder的问题:
PCollection rows = ...;
Schema schema = ...
final Coder rowCoder = RowCoder.of(schema);
rows.setCoder(rowCoder);
... // Do transformations with rows
Pipeline p = ...
p.getCoderRegistry().registerCoder(Row.class, rowCoder);
p.run();
此示例将Row Coder正确地注册到管道中,以确保使用自定义编码器时不会出现问题。