今天使用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
