Spark:合并RDD

时间:2017-01-09 15:06:47

标签: apache-spark rdd

如何处理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'的问题是花费的时间。

由于

0 个答案:

没有答案