gpt4 book ai didi

java - Spark 序列化 Java 库

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:51 25 4
gpt4 key购买 nike

我正在使用 Spark 在 scala 中运行脚本。我使用 [PrettyTime][1] 作为库。但它不可序列化。

at org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:298)
at org.apache.spark.util.ClosureCleaner$.org$apache$spark$util$ClosureCleaner$$clean(ClosureCleaner.scala:288)
at org.apache.spark.util.ClosureCleaner$.clean(ClosureCleaner.scala:108)
at org.apache.spark.SparkContext.clean(SparkContext.scala:2094)
at org.apache.spark.rdd.RDD$$anonfun$map$1.apply(RDD.scala:370)
at org.apache.spark.rdd.RDD$$anonfun$map$1.apply(RDD.scala:369)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:362)
at org.apache.spark.rdd.RDD.map(RDD.scala:369)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:74)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:84)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:86)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:88)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:90)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:92)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:94)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:96)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:98)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:100)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:102)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:104)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:106)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw.<init>(<console>:108)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw.<init>(<console>:110)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw.<init>(<console>:112)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw.<init>(<console>:114)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw.<init>(<console>:116)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$eval$.$print$lzycompute(<console>:7)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$eval$.$print(<console>:6)
Caused by: java.io.NotSerializableException: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$DateTimeParser$
Serialization stack:
- object not serializable (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$DateTimeParser$, value: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$DateTimeParser$@3b72e48)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: DateTimeParser$module, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$DateTimeParser$)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@2546ce7c)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@1e837893)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@5fc3c9ba)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@2974b4ab)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@6f1669ab)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@5617a000)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@18ccefe9)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@784ba0ac)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@4c399f7d)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw@4a43d546)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw@78821701)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw@6eb07bcc)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw@59a7cec1)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw@7b8fc596)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw@6974a1eb)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw@7288ec90)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read, name: $iw, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read, lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read@3a8befaa)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: lineb8a1770bfabb4ce4a0bcef2d50888f5495$read, type: class lineb8a1770bfabb4ce4a0bcef2d50888f5495.$read)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@3d361fe7)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, name: $outer, type: class lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw, lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw@241effb0)
- field (class: lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$anonfun$2, name: $outer, type: class lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw)
- object (class lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$anonfun$2, <function1>)
at org.apache.spark.serializer.SerializationDebugger$.improveException(SerializationDebugger.scala:40)
at org.apache.spark.serializer.JavaSerializationStream.writeObject(JavaSerializer.scala:46)
at org.apache.spark.serializer.JavaSerializerInstance.serialize(JavaSerializer.scala:100)
at org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:295)
at org.apache.spark.util.ClosureCleaner$.org$apache$spark$util$ClosureCleaner$$clean(ClosureCleaner.scala:288)
at org.apache.spark.util.ClosureCleaner$.clean(ClosureCleaner.scala:108)
at org.apache.spark.SparkContext.clean(SparkContext.scala:2094)
at org.apache.spark.rdd.RDD$$anonfun$map$1.apply(RDD.scala:370)
at org.apache.spark.rdd.RDD$$anonfun$map$1.apply(RDD.scala:369)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:362)
at org.apache.spark.rdd.RDD.map(RDD.scala:369)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:74)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:84)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:86)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:88)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:90)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:92)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:94)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:96)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:98)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:100)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:102)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:104)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw$$iw.<init>(<console>:106)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw$$iw.<init>(<console>:108)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw$$iw.<init>(<console>:110)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw$$iw.<init>(<console>:112)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw$$iw.<init>(<console>:114)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$read$$iw.<init>(<console>:116)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$eval$.$print$lzycompute(<console>:7)
at lineb8a1770bfabb4ce4a0bcef2d50888f54105.$eval$.$print(<console>:6)

我尝试过这个想法here ,创建一个对象包装器,但它仍然不起作用。

有什么想法吗?我的代码:

object Holder {
def pretty() = {
val prettyTime = new PrettyTimeParser()
prettyTime
}
}

object DateTimeParser {

val NameMask = "DATETIME"

case class dateParts(times: scala.collection.immutable.List[Date], text: String, line: Int, position: Int)

def apply(emailBody: String): Seq[dateParts] = parseEmail(emailBody)

def normalizeBody(emailBody: String): String = {
val dates: Seq[dateParts] = parseEmail(emailBody)
val dateStrings: Seq[String] = dates map (_.text)
val dateMap: Map[String, String] = dateStrings.map((_, NameMask)).toMap

dateMap.foldLeft(emailBody) { case (cur, (regex, _)) => cur.replaceAll(regex, NameMask) }
}

def parseEmail(emailBody: String): Seq[dateParts] = {
val parsed: Seq[DateGroup] = Holder.pretty.parseSyntax(emailBody).asScala.toList
parsed
.map(curr => dateParts(curr.getDates.asScala.toList, curr.getText, curr.getLine, curr.getPosition))
}
}

enter image description here

最佳答案

如果对象包含不可序列化的内容,则该对象无法序列化。

当您必须使用无法控制的非Serialized类时,可能的解决方法是直接在闭包中实例化该类。

val normal =
email.
...
map(body => (body, DateTimeParser.normalizeBody(body, new PrettyTimeParser))).
...

为了最大限度地减少对象创建,您可以在调用 mapPartitions(而不是 map)中创建它。

val normal =
email.
...
mapPartitions {
bodies =>
lazy val parser = new PrettyTimeParser
for (body <- bodies) yield
(body, DateTimeParser.normalizeBody(body, parser)))
}.
...

另一种方法(如果类运行线程安全代码)可以是在闭包内部范围之外创建解析器,将其标记为@transient lazy val,然后在闭包中使用它,以便每个执行器都将创建自己的解析器。

@transient lazy val parser = new PrettyTimeParser

val normal =
email.
...
map(body => (body, DateTimeParser.normalizeBody(body, parser))).
...

在每种情况下,您都需要调整代码,以便将解析器作为参数:

object DateTimeParser {

val NameMask = "DATETIME"

case class dateParts(times: scala.collection.immutable.List[Date], text: String, line: Int, position: Int)

def apply(emailBody: String): Seq[dateParts] = parseEmail(emailBody)

def normalizeBody(emailBody: String, parser: PrettyTimeParser): String = {
val dates: Seq[dateParts] = parseEmail(emailBody, parser)
val dateStrings: Seq[String] = dates map (_.text)
val dateMap: Map[String, String] = dateStrings.map((_, NameMask)).toMap

dateMap.foldLeft(emailBody) { case (cur, (regex, _)) => cur.replaceAll(regex, NameMask) }
}

def parseEmail(emailBody: String, parser: PrettyTimeParser): Seq[dateParts] = {
val parsed: Seq[DateGroup] = parser.parseSyntax(emailBody).asScala.toList
parsed
.map(curr => dateParts(curr.getDates.asScala.toList, curr.getText, curr.getLine, curr.getPosition))
}
}

如果您遇到其他不可序列化的对象,请继续应用相同的方法,直到成功为止。

关于java - Spark 序列化 Java 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44035818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com