Java Spark catalyst optimizer强制转换异常
我有2个(Java Spark catalyst optimizer强制转换异常,java,apache-spark,apache-spark-sql,Java,Apache Spark,Apache Spark Sql,我有2个(Foo和Bar)类,每个类实现一个接口 应用程序具有检查接口对象某些条件的方法 private boolean check(Interface1 obj) 我将此方法应用于两个类: Dataset<Foo> foos = getStapSession()....load().as(Encoders.bean(Foo.class)); Dataset<Bar> bars = getStapSession()....load().as(Encoders.bean(
Foo
和Bar
)类,每个类实现一个接口
应用程序具有检查接口对象某些条件的方法
private boolean check(Interface1 obj)
我将此方法应用于两个类:
Dataset<Foo> foos = getStapSession()....load().as(Encoders.bean(Foo.class));
Dataset<Bar> bars = getStapSession()....load().as(Encoders.bean(Bar.class));
foos.filter((FilterFunction<Foo>) this::check).collectAsList();
bars.filter((FilterFunction<Bar>) this::check).collectAsList();
有不同的阶级,有不同的属性等等。
数据集的创建是不同的。(几个src文件)
编辑:
.filter((FilterFunction<Foo>)obj -> check(obj))
.filter((FilterFunction)obj->check(obj))
及
.filter((FilterFunction)obj->check(obj))
工作正常。有一些问题与方法参考有关
this::check
这不是Spark的bug,而是,lambda的反序列化将导致ClassCastException。
您可以在中看到此问题的类似问题描述
.filter((FilterFunction<Foo>)obj -> check(obj))
.filter((FilterFunction<Bar>)obj -> check(obj))