type 类型的 Spark reduceByKey(arguments) 不适用于参数 arguments
Posted
技术标签:
【中文标题】type 类型的 Spark reduceByKey(arguments) 不适用于参数 arguments【英文标题】:Spark reduceByKey(arguments) in the type type is not applicable for the arguments argumentstype 类型的 Spark reduceByKey(arguments) 不适用于参数 arguments 【发布时间】:2018-07-04 19:53:20 【问题描述】:对于 reduce、fold 和 reduceByKey 函数,我收到以下错误。我搜索了整个论坛,但没有运气。
类型中的方法reduceByKey(Function2) JavaPairRDD 不适用于参数(新 函数2())
termsRDD
的类型为 JavaPairRDD<Integer, Integer>
termsRDD.reduceByKey(new Function2<Integer,Integer,Integer>()
private static final long serialVersionUID = -376611514417758310L;
@Override
public Integer apply(Integer arg0, Integer arg1) throws Exception
// TODO Auto-generated method stub
return arg0+arg1;
);
这是一个相当简单的代码,它分别对键值求和。
非常感谢任何帮助。 谢谢
【问题讨论】:
【参考方案1】:你实现了错误的接口。
JavaPairRDD.reduceByKey
采用 org.apache.spark.api.java.function.Function2
需要 call
方法。
您似乎正在尝试实现scala.Function2
应该是
import org.apache.spark.api.java.function.Function2;
termsRDD.reduceByKey(new Function2<Integer,Integer,Integer>()
@Override
public Integer call(Integer arg0, Integer arg1) throws Exception
return arg0+arg1;
);
【讨论】:
以上是关于type 类型的 Spark reduceByKey(arguments) 不适用于参数 arguments的主要内容,如果未能解决你的问题,请参考以下文章
创建 Spark DataFrame。无法推断类型的架构:<type 'float'>
Spark TypeError:LongType 不能接受类型 <type 'unicode'> 中的对象 u'Value'
Spark Sql: TypeError("StructType 不能接受类型为 %s 的对象" % type(obj))