0
私はデータフロー2.1 sdkで単純なパイプラインを持っています。 pubsubからデータを読み込んでDoFnを適用します。java.lang.IllegalStateException:データフロー2.Xの既定のコーダーを返すことができません
PCollection<MyClass> e = streamData.apply("ToE", ParDo.of(new MyDoFNClass()));
このパイプラインにエラーを下回る行き方:
java.lang.IllegalStateException:(MyDoFNClass).out0 [PCollection] ToEvents/ParMultiDoのデフォルトコーダーを返すことができませんでしたが。次の根本原因の1つを修正してください。 コーダーが手動で指定されていません。 .setCoder()を使用するとそうすることができます。 CoderRegistryからCoderを推測できませんでした:com.X.X.model.MyClassのCoderを提供できませんでした。
MyDoFnクラスは以下の通りです:
@DefaultCoder(AvroCoder.class)
public class MyClass{
public long id;
public HashMap<String,HashSet<String>> a;
@SerializedName("a")
public Integer Id;
@SerializedName("ae")
public String ae;
}
1)に
implements Serializable
を追加するneeededソリューションを発見されましたか? 2)あるいは、メッセージが示唆しているように.setCoder()を使って手動でコーダーを指定しようとしましたか? – jkff