Spark JavaRDD.subtract()问题

时间:2015-05-19 05:45:32

标签: apache-spark

    JavaSparkContext jsc = TestUtil.getJavaSparkContext("TestSparkHBase");//just gets the java spark context

    List<Integer> l1 = new ArrayList<Integer>();
    l1.add(1);
    l1.add(2);
    l1.add(3);
    l1.add(4);
    l1.add(5);


    List<Integer> l2 = new ArrayList<Integer>();
    l1.add(1);
    l1.add(2);


    JavaRDD<Integer> rdd1 = jsc.parallelize(l1);
    JavaRDD<Integer> rdd2 = jsc.parallelize(l2);

    JavaRDD<Integer> rdd3 = rdd1.subtract(rdd2);
    rdd3.saveAsTextFile("...");

我得到的输出是: 1 1 2 2 3 4 5

这是预期的行为吗?我的期望是获得: 3 4 五 作为输出

1 个答案:

答案 0 :(得分:3)

在创建新的ArrayList l2后,再次错误地将1,2添加到l1中。

将其更改为l2,您将获得预期的结果。