我有一个大平面文件,里面有三种类型的数据(" M"," C"," Q")。我正在使用
创建一个RDDval 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。
我知道如果我们保留数据集,文件将只读取一次。但是文件太大而无法持久化。