[
https://issues.apache.org/jira/browse/FLINK-4331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pushpendra Jaiswal resolved FLINK-4331.
---------------------------------------
Resolution: Fixed
> Flink is not able to serialize scala classes / Task Not Serializable
> --------------------------------------------------------------------
>
> Key: FLINK-4331
> URL: https://issues.apache.org/jira/browse/FLINK-4331
> Project: Flink
> Issue Type: Bug
> Components: DataStream API
> Affects Versions: 1.1.0
> Reporter: Pushpendra Jaiswal
> Priority: Minor
>
> I have scala class having 2 fields which are vals but flink is saying it
> doesn't have setters. Thus task is not serializable.
> I tried setters using var but then it says duplicate setter. vals are public
> then why it is asking for setters. Flink version 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
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)