ClassCastException:无法在org.apache.spark.rdd.MapPartitionsRDD实例中分配scala.collection.immutable.List $ SerializationProxy实例

时间:2019-08-20 00:28:40

标签: apache-spark serialization apache-spark-sql rdd

我有一个spring boot微服务,它与具有3个节点的远程spark集群通信,并执行以下逻辑:

    Dataset<Row> df = sparkSession.read().json("/opt/enso/test.json");
    StructType schema = df.schema();

    JavaPairRDD<Row, Long> zippedRows = df.toJavaRDD().zipWithIndex();
    JavaPairRDD<Row, Long> filteredRows = zippedRows.filter(new Function<Tuple2<Row,Long>,Boolean> () {
           @Override
           public Boolean call(Tuple2<Row,Long> v1) throws Exception {
           return v1._2 >= 1 && v1._2 <= 5;
           }
        });
    JavaRDD<Row> filteredRdd =  filteredRows.keys();

    Dataset<Row> ds = sparkSqlContext.createDataFrame(filteredRdd, schema);
    List<String> mystr = ds.toJSON().collectAsList();

JavaPairRDDfilteredRows = zippedRows.filter

上失败

带有org.apache.spark.api.java.function.Function中的匿名Function类

除上述例外。

我研究了以下JIRA: https://issues.apache.org/jira/browse/SPARK-9219

https://issues.apache.org/jira/browse/SPARK-18075

以及https://issues.apache.org/jira/browse/SPARK-19938?jql=project%20%3D%20SPARK%20AND%20text%20~%20%22scala.collection.immutable.List%24SerializationProxy%22

中的所有内容

似乎是一个类加载问题,我已经尝试了

error when use filter(),map(),... in spark java api( org.apache.spark.SparkException )

在上述问题中提出建议的解决方案。

我也尝试通过设置加载我的jar

spark.executor.extraClassPath仍然有相同的问题。

有指针吗?

0 个答案:

没有答案