3
私はの値の2つのフィールドを持つスカラクラスを持っていますが、フリンクはセッターを持っていないと言っています。したがって、タスクはシリアライズ可能ではありません。Flinkはスカラクラスをシリアライズできません/タスクがシリアライズ不可能
私はvarを使ってセッターを試みましたが、それは重複セッターと言います。なぜそれがセッターを求めているのですか? FLINKバージョン1.1.0
class Impression(val map: Map[String, String],val keySet:Set[String])
マイコード:
val preAggregate = stream
.filter(impression => {
true
})
.map(impression => {
val xmap = impression.map
val values = valFunction(xmap)
new ImpressionRecord(impression, values._1, values._2, values._3)
})
例外:
**class Impression does not contain a setter for field map**
19:54:49.995 [main] INFO o.a.f.a.java.typeutils.TypeExtractor - class Impression is not a valid POJO type
19:54:49.997 [main] DEBUG o.a.flink.api.scala.ClosureCleaner$ - accessedFields: Map(class -> Set())
Exception in thread "main" **org.apache.flink.api.common.InvalidProgramException: Task not serializable
at** org.apache.flink.api.scala.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:172)
at)
Caused by: java.io.NotSerializableException: org.apache.flink.streaming.api.scala.DataStream
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at org.apache.flink.util.InstantiationUtil.serializeObject(InstantiationUtil.java:301)
at org.apache.flink.api.scala.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:170)
... 18 more