同时生成多个RDD

时间:2016-11-25 03:42:30

标签: java apache-spark rdd

原始文件RDD由

创建
sc.wholeTextFiles(path) 

和fileRDD的关键是文件名,值是文件内容。 当我遍历文件内容(值)时,我可以获得大量信息。所以我想在遍历文件后生成多个RDD。例如:我定义了三个类

public class Interface implements Serializable
public class VPNInstance implements Serializable
public class Equipment implements Serializable

使用地图操作后:

fileRDD.map(traverse function)

返回

RDD<Interface>, RDD<VPNInstance> and RDD<Equipment>

同时。否则,我需要遍历文件内容三次以生成三个RDD。

那么是否有同时生成多个RDD的解决方案?

1 个答案:

答案 0 :(得分:0)

当然,编写一个遍历函数来创建这样的对象:

public class Record implements Serializable {
    private Interface interface;
    private VPNInstance vpnInstance;
    private Equipment equipment;
}

映射数据集后,使用cache()persist()以避免重新计算。