从一个RDD创建多个RDD

时间:2016-02-22 05:23:56

标签: scala apache-spark

我有一个大平面文件,里面有三种类型的数据(" M"," C"," Q")。我正在使用

创建一个RDD
val inputRDD=sc.textFile("/user/train");

我通过在inputRDD上应用三个转换来过滤数据。

val metaRDD=inputRDD.filter(line=>line.contains("M"));
val clickRDD=inputRDD.filter(line=>line.contains("C"));
val QueryRDD=inputRDD.filter(line=>line.contains("Q"));

当我们在动作中使用三个rdds时,这将读取整个文件三次。有没有办法通过在inputRDD上应用一个转换并只读取一次文件来获得三个RDD。

我知道如果我们保留数据集,文件将只读取一次。但是文件太大而无法持久化。

0 个答案:

没有答案