Spark Map方法抛出序列化异常

ε

我是新手Spark,我对map函数内部的序列化有疑问这是代码的一些要素

private Function<Row, String> SparkMap() throws IOException {
        return new Function<Row, String>() {
            public String call(Row row) throws IOException {
                /* some code */
            }
        };
    }

public static void main(String[] args) throws Exception {
        MyClass myClass = new MyClass();
        SQLContext sqlContext = new SQLContext(sc);
        DataFrame df = sqlContext.load(args[0], "com.databricks.spark.avro");

        JavaRDD<String> output = df.javaRDD().map(myClass.SparkMap());
    }

这是错误日志

Caused by: java.io.NotSerializableException: myPackage.MyClass
Serialization stack:
    - object not serializable (class: myPackage.MyClass, value: myPackage.MyClass@281c8380)
    - field (class: myPackage.MyClass$1, name: this$0, type: class myPackage.MyClass)
    - object (class myPackage.MyClass$1, myPackage.MyClass$1@28ef1bc8)
    - field (class: org.apache.spark.api.java.JavaPairRDD$$anonfun$toScalaFunction$1, name: fun$1, type: interface org.apache.spark.api.java.function.Function)
    - object (class org.apache.spark.api.java.JavaPairRDD$$anonfun$toScalaFunction$1, <function1>)
    at org.apache.spark.serializer.SerializationDebugger$.improveException(SerializationDebugger.scala:40)
    at org.apache.spark.serializer.JavaSerializationStream.writeObject(JavaSerializer.scala:47)
    at org.apache.spark.serializer.JavaSerializerInstance.serialize(JavaSerializer.scala:81)
    at org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:312)
    ... 12 more

如果我将SparkMap方法声明为静态,则它将运行。怎么会这样

贾斯汀·皮洪尼(Justin Pihony)

唯一的解释是例外:

object not serializable (class: myPackage.MyClass, value: myPackage.MyClass@281c8380)

只需使您的MyClass Serializable,它就可以工作。

它以静态方式工作,因为在这种情况下它仅采用函数,而不是整个myClass对象

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spark序列化异常

来自分类Dev

Spark Accumulator抛出“任务不可序列化”错误

来自分类Dev

Twitter Spark流过滤:任务不可序列化异常

来自分类Dev

集成Spark SQL和Spark流时出现不可序列化异常

来自分类Dev

集成Spark SQL和Spark流时出现不可序列化的异常

来自分类Dev

Spark和不可序列化的DateTimeFormatter

来自分类Dev

Apache Spark任务不可序列化

来自分类Dev

Java的Apache Spark对象序列化

来自分类Dev

Spark:对象不可序列化

来自分类Dev

spark-jobserver序列化格式

来自分类Dev

Spark 流 + Accumulo - 序列化 BatchWriterImpl

来自分类Dev

spark组和序列化列表

来自分类Dev

使用Spark Streaming读取Kafka记录时出现不可序列化的异常

来自分类Dev

spark-Kafka流式传输异常-对象不可序列化

来自分类Dev

JSON 解析器的 Apache Spark 对象不可序列化异常

来自分类Dev

Spark Sortby抛出异常

来自分类Dev

带序列化的Scala反射(通过Spark)-符号不可序列化

来自分类Dev

带序列化的Scala反射(通过Spark)-符号不可序列化

来自分类Dev

Spark序列化和Java序列化有什么区别?

来自分类Dev

解耦不可序列化的对象以避免Spark中的序列化错误

来自分类Dev

Spark:无法为DataFrame上的UDF序列化任务

来自分类Dev

使用带有Spark的Function实现的序列化问题

来自分类Dev

Spark Task不可序列化(案例类)

来自分类Dev

通过Spark写入HBase:任务不可序列化

来自分类Dev

Spark上的Redis:任务不可序列化

来自分类Dev

Spark上的Redis:任务不可序列化

来自分类Dev

Spark SQL UDF任务不可序列化

来自分类Dev

Spark Kryo:注册自定义序列化程序

来自分类Dev

ProtoBuf字段的Spark,Kryo序列化问题

Related 相关文章

热门标签

归档