Remove redundant Java Function call() definitions
This should fix SPARK-902, an issue where some Java API Function classes could cause AbstractMethodErrors when user code is compiled using the Eclipse compiler. Thanks to @MartinWeindel for diagnosing this problem. (This PR subsumes / closes #30)
This commit is contained in:
parent
97184de1db
commit
768eb9c962
|
@ -18,8 +18,6 @@
|
|||
package org.apache.spark.api.java.function;
|
||||
|
||||
|
||||
import scala.runtime.AbstractFunction1;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
|
@ -27,11 +25,7 @@ import java.io.Serializable;
|
|||
*/
|
||||
// DoubleFlatMapFunction does not extend FlatMapFunction because flatMap is
|
||||
// overloaded for both FlatMapFunction and DoubleFlatMapFunction.
|
||||
public abstract class DoubleFlatMapFunction<T> extends AbstractFunction1<T, Iterable<Double>>
|
||||
public abstract class DoubleFlatMapFunction<T> extends WrappedFunction1<T, Iterable<Double>>
|
||||
implements Serializable {
|
||||
|
||||
public abstract Iterable<Double> call(T t);
|
||||
|
||||
@Override
|
||||
public final Iterable<Double> apply(T t) { return call(t); }
|
||||
// Intentionally left blank
|
||||
}
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
package org.apache.spark.api.java.function;
|
||||
|
||||
|
||||
import scala.runtime.AbstractFunction1;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
|
@ -29,6 +27,5 @@ import java.io.Serializable;
|
|||
// are overloaded for both Function and DoubleFunction.
|
||||
public abstract class DoubleFunction<T> extends WrappedFunction1<T, Double>
|
||||
implements Serializable {
|
||||
|
||||
public abstract Double call(T t) throws Exception;
|
||||
// Intentionally left blank
|
||||
}
|
||||
|
|
|
@ -21,8 +21,5 @@ package org.apache.spark.api.java.function
|
|||
* A function that returns zero or more output records from each input record.
|
||||
*/
|
||||
abstract class FlatMapFunction[T, R] extends Function[T, java.lang.Iterable[R]] {
|
||||
@throws(classOf[Exception])
|
||||
def call(x: T) : java.lang.Iterable[R]
|
||||
|
||||
def elementType() : ClassManifest[R] = ClassManifest.Any.asInstanceOf[ClassManifest[R]]
|
||||
}
|
||||
|
|
|
@ -21,8 +21,5 @@ package org.apache.spark.api.java.function
|
|||
* A function that takes two inputs and returns zero or more output records.
|
||||
*/
|
||||
abstract class FlatMapFunction2[A, B, C] extends Function2[A, B, java.lang.Iterable[C]] {
|
||||
@throws(classOf[Exception])
|
||||
def call(a: A, b:B) : java.lang.Iterable[C]
|
||||
|
||||
def elementType() : ClassManifest[C] = ClassManifest.Any.asInstanceOf[ClassManifest[C]]
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@ package org.apache.spark.api.java.function;
|
|||
|
||||
import scala.reflect.ClassManifest;
|
||||
import scala.reflect.ClassManifest$;
|
||||
import scala.runtime.AbstractFunction1;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
@ -30,8 +29,6 @@ import java.io.Serializable;
|
|||
* when mapping RDDs of other types.
|
||||
*/
|
||||
public abstract class Function<T, R> extends WrappedFunction1<T, R> implements Serializable {
|
||||
public abstract R call(T t) throws Exception;
|
||||
|
||||
public ClassManifest<R> returnType() {
|
||||
return (ClassManifest<R>) ClassManifest$.MODULE$.fromClass(Object.class);
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@ package org.apache.spark.api.java.function;
|
|||
|
||||
import scala.reflect.ClassManifest;
|
||||
import scala.reflect.ClassManifest$;
|
||||
import scala.runtime.AbstractFunction2;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
@ -29,8 +28,6 @@ import java.io.Serializable;
|
|||
public abstract class Function2<T1, T2, R> extends WrappedFunction2<T1, T2, R>
|
||||
implements Serializable {
|
||||
|
||||
public abstract R call(T1 t1, T2 t2) throws Exception;
|
||||
|
||||
public ClassManifest<R> returnType() {
|
||||
return (ClassManifest<R>) ClassManifest$.MODULE$.fromClass(Object.class);
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ package org.apache.spark.api.java.function;
|
|||
import scala.Tuple2;
|
||||
import scala.reflect.ClassManifest;
|
||||
import scala.reflect.ClassManifest$;
|
||||
import scala.runtime.AbstractFunction1;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
@ -34,8 +33,6 @@ public abstract class PairFlatMapFunction<T, K, V>
|
|||
extends WrappedFunction1<T, Iterable<Tuple2<K, V>>>
|
||||
implements Serializable {
|
||||
|
||||
public abstract Iterable<Tuple2<K, V>> call(T t) throws Exception;
|
||||
|
||||
public ClassManifest<K> keyType() {
|
||||
return (ClassManifest<K>) ClassManifest$.MODULE$.fromClass(Object.class);
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ package org.apache.spark.api.java.function;
|
|||
import scala.Tuple2;
|
||||
import scala.reflect.ClassManifest;
|
||||
import scala.reflect.ClassManifest$;
|
||||
import scala.runtime.AbstractFunction1;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
@ -29,12 +28,9 @@ import java.io.Serializable;
|
|||
*/
|
||||
// PairFunction does not extend Function because some UDF functions, like map,
|
||||
// are overloaded for both Function and PairFunction.
|
||||
public abstract class PairFunction<T, K, V>
|
||||
extends WrappedFunction1<T, Tuple2<K, V>>
|
||||
public abstract class PairFunction<T, K, V> extends WrappedFunction1<T, Tuple2<K, V>>
|
||||
implements Serializable {
|
||||
|
||||
public abstract Tuple2<K, V> call(T t) throws Exception;
|
||||
|
||||
public ClassManifest<K> keyType() {
|
||||
return (ClassManifest<K>) ClassManifest$.MODULE$.fromClass(Object.class);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue