无法编码空字符串

无法编码空字符串

本文介绍了com.google.cloud.dataflow.sdk.coders.CoderException:无法编码空字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Google Cloud Data Flow中遇到以下错误:

I got the following error in Google Cloud Data Flow:

在我的班级(JsonToObject)中,我执行以下操作:

In my class (JsonToObject) I do the following:

还有引发异常的地方.

知道为什么会发生吗?

推荐答案

NullableCoder 是一种复合编码器,要求根据其他编码器进行指定. @DefaultCoder 是与复合编码器(KvCoder,IterableCoder等)不兼容,因为此要求由另一个编码器进行参数化.解决您的问题的一种方法是在每个可能包含可空类型的PCollection上设置编码器.例如:

NullableCoder is a composite coder which requires it to be specified in terms of another coder. @DefaultCoder is incompatible with composite coders (KvCoder, IterableCoder, ...) because of this requirement to be parameterized by another coder. One way to solve your problem is to set the coder on each PCollection that may contain nullable types manually. For example:

PCollection<String> pc = pipeline.apply(... transform that produces nulls ...);
pc.setCoder(NullableCoder.of(StringUtf8Coder.of());

这篇关于com.google.cloud.dataflow.sdk.coders.CoderException:无法编码空字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-01 22:03