如何处理RDD结构:在调用“map”函数后,我得到一个RDD,其中myObject
是我自己的类,包含xml的序列化。
我想将RDD的每个myObject
合并为一个。
我已经实现了foreach
函数并在其中调用了一个特定的函数,但问题是有很多myObject
所以它花了很多时间。
*编辑:执行'reduce'的代码片段:
JavaRDD<MyObject> objects = null;
objects = input.map(new Function<String, MyObject>() { public MyObject call(String s) throws MalformedURLException, SAXException, ParserConfigurationException, IOException{
machine.initializeReader(delimiter);
return machine.Request(s);
}
});
MyObject finalResult = objects.reduce(new Function2<MyObject, MyObject, MyObject>() {
@Override
public MyObject call(MyObject myObject, MyObject myObject2) {
return myObject.merge(myObject2);
}
});
'Merge'函数循环遍历'MyObject'元素并合并常见元素:如果我有一个具有特定id的标记,而另一个“myObject”则相同,那么我创建一个包含标记并添加2的结果。
使用'reduce'或'foreach'的问题是花费的时间。
由于