zoukankan      html  css  js  c++  java
  • 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

    技术服务业务
  • 相关阅读:
    String类
    Scanner类
    Object类
    接口
    static关键字
    final关键字
    抽象类
    权限修饰符
    方法重写 (Override)
    面向对象思想特征
  • 原文地址:https://www.cnblogs.com/cauwt/p/java_spark_2_flatMapToPair.html
Copyright © 2011-2022 走看看