Benutzerdefinierte Codierer einstellen und parametrisierte Typen handhaben

Ich habe zwei Fragen im Zusammenhang mit Codierungsproblemen mit meiner Dataflow-Pipeline.

Wie kann ich einen Codierer für meine benutzerdefinierten Datentypen festlegen? Die Klasse besteht aus nur drei Elementen - zwei Doppelelementen und einer weiteren parametrisierten Eigenschaft. Ich habe versucht, den Typ mit SerializableCoder zu kommentieren, habe aber immer noch den Fehler "com.google.cloud.dataflow.sdk.coders.CannotProvideCoderException: Der Codierer kann nicht basierend auf dem Wert der Klassenschnittstelle java.util.Set bereitgestellt werden: Es wurde keine CoderFactory registriert für die Klasse. " Das Set enthält tatsächlich den parametrisierten benutzerdefinierten Datentyp - daher gehe ich davon aus, dass der benutzerdefinierte Datentyp das Problem ist. Ich konnte nicht genügend Dokumentation / Beispiele finden, um dies zu erreichen. Bitte zeigen Sie mir an der richtigen Stelle, wenn es verfügbar ist.Auch ohne den benutzerdefinierten Datentyp führt der Wechsel zu einer parametrisierten Version der Transformationsfunktionen zu Codierungsfehlern. Insbesondere innerhalb einer komplexen Transformation, die parametrisiert ist, arbeitet ein ParDo mit parametrisierten Typen, aber wenn ich ein Combine.PerKey auf die resultierende PCollection nach dem ParDo anwende, führt dies zur CoderNotFoundException.

Jede Hilfe in Bezug auf diese beiden Punkte wäre hilfreich, da ich hier schon seit einiger Zeit festgefahren bin.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage