我有一个方法:
def udf(func: RDD[Row] => RDD[Row]) = ...
和另一种方法:
def udf(func: List[String] => List[String]) = ...
Scala中的它给了我这个:
Error:(...) double definition:
method udf:(func: List[String] => List[String])UDFOperator and
method udf:(func: org.apache.spark.rdd.RDD[Row] => org.apache.spark.rdd.RDD[Row])UDFOperator at ...
have same type after erasure: (func: Function1)UDFOperator
def udf(func: List[String] => List[String]) = {
^
答案 0 :(得分:4)
JVM不支持泛型,因此Scala可能需要解决运行时泛型类型检查所需的任何内容都无法完成。
在您的情况下,两种方法都需要Function1[_,_]
个参数,而JVM无法区分它们。您必须重命名其中一个。