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