Tôi biết tia lửa đánh giá lười biếng.Apache Spark: hoạt động công đoàn không được thực hiện
Nhưng hành vi này có được mong đợi không ?? Với chương trình dưới đây sản lượng là 20.
Nhưng nếu báo cáo kết quả in
System.out.println("/////////////////// After "+MainRDD.count());
là không chú thích, sản lượng sẽ là 40
Tôi không làm điều này như là trong ứng dụng của tôi, Nhưng chỉ để minh họa, tôi đã tạo chương trình này ..
SparkConf sparkConf = new SparkConf().setMaster("local").setAppName("JavaSparkSQL");
JavaSparkContext sc = new JavaSparkContext(sparkConf);
JavaRDD<Integer> MainRDD;
ArrayList<Integer> list = new ArrayList<>();
JavaRDD<Integer> tmp;
for (int i = 0; i < 20; i++) {
list.add(i);
}
MainRDD = sc.parallelize(list);// MainRDD.union(tmp);
System.out.println("//////////////////////First "+MainRDD.count());
list.clear();
for (int i = 20; i < 25; i++) {
for (int j = 1; j < 5; j++) {
list.add(i*j);
}
tmp = sc.parallelize(list);
// System.out.println("/////////////////// Before "+MainRDD.count());
MainRDD = MainRDD.union(tmp);
// System.out.println("/////////////////// After "+MainRDD.count());
list.clear();
}
System.out.println("/////////////////// last "+MainRDD.count());
}
@eliash Thật sao? Tôi thực sự ngạc nhiên nó hoạt động ở tất cả :) – zero323
Vâng, thực sự ... Tôi có một hành vi rất lạ! Tôi nghĩ rằng đó là do sự biến đổi của cấu trúc dữ liệu ... – eliasah