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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM