Java+Spark 实现 flatMapToPair 的lambda函数时遇到的问题及解决方法

Posted cauwt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java+Spark 实现 flatMapToPair 的lambda函数时遇到的问题及解决方法相关的知识,希望对你有一定的参考价值。

今天使用Java+Spark 实现 flatMapToPair 的lambda函数,代码如下:

JavaPairRDD<String, String> extractSessionsRDD = time2SessionsRDD.flatMapToPair(tuple->{
    List<Tuple2<String, String>> extractSessionids = new ArrayList<>();
    // ...
    return extractSessionids;
});

结果报错:

no instance(s) of type variable(s) K2,V2 so that List<Tuple2<String,String>> conforms to Iterator<Tuple2<String,String>>

上网查了下原因,是因为spark 2.0以上要求返回一个Iterator的实例。

于是修改代码如下(标红),错误就消失了。

JavaPairRDD<String, String> extractSessionsRDD = time2SessionsRDD.flatMapToPair(tuple->{
    List<Tuple2<String, String>> extractSessionids = new ArrayList<>();
    // ...
    return extractSessionids.iterator();
});

记录一下,备忘。

参考:http://blog.csdn.net/t1dmzks/article/details/70234272

 

以上是关于Java+Spark 实现 flatMapToPair 的lambda函数时遇到的问题及解决方法的主要内容,如果未能解决你的问题,请参考以下文章

大数据算法设计模式 - topN spark实现

使用java的apache spark中的决策树实现问题

Spark-Mllib中各分类算法的java实现(简易教程)

UserView--第二种方式(避免第一种方式Set饱和),基于Spark算子的java代码实现

Spark用Java实现二次排序的自定义key

Java+Spark 实现 flatMapToPair 的lambda函数时遇到的问题及解决方法