【发布时间】:2016-05-26 13:23:19
【问题描述】:
假设 Employee 是一个 Java 类。
我有一个JavaRDD<Employee[]> arrayOfEmpList,即每个RDD都有一个array of employees。
除此之外,我想创建一个员工列表,例如
JavaRDD<Employee>
这是我尝试过的:
创建了List<Employee> empList = new ArrayList<Employee>();
然后foreach Employee[]的RDD:
arrayOfEmpList.forEach(new VoidFunction<Employee[]>(){
public void call(Employee[] arg0){
empList.addAll(Arrays.asList(arg0));
System.out.println(empList.size()); //prints correct values incrementally
}
});
System.out.println(empList.size()); //gives 0
我无法获得 foreach 循环之外的大小。
还有其他方法可以实现吗?
P.S:我想将所有员工记录作为单独的 RDD,所以第一个员工列表可能包含 10 条记录,第二个可能包含 100 条记录,第三个可能包含 200 条记录。我想要一个包含 330 条记录的最终列表,然后我可以对其进行并行化并执行操作。
【问题讨论】:
标签: java apache-spark rdd