Scala Spark: разбить коллекцию на несколько RDD?

Есть ли какая-либо функция Spark, которая позволяет разбить коллекцию на несколько RDD в соответствии с некоторыми вариантами? Такая функция позволила бы избежать чрезмерного изменения. Например:

def main(args: Array[String]) {
    val logFile = "file.txt" 
    val conf = new SparkConf().setAppName("Simple Application")
    val sc = new SparkContext(conf)
    val logData = sc.textFile(logFile, 2).cache()
    val lineAs = logData.filter(line => line.contains("a")).saveAsTextFile("linesA.txt")
    val lineBs = logData.filter(line => line.contains("b")).saveAsTextFile("linesB.txt")
  }

В этом примере мне нужно дважды выполнить итерацию 'logData`, чтобы записать результаты в два отдельных файла:

    val lineAs = logData.filter(line => line.contains("a")).saveAsTextFile("linesA.txt")
    val lineBs = logData.filter(line => line.contains("b")).saveAsTextFile("linesB.txt")

Было бы неплохо иметь что-то вроде этого:

    val resultMap = logData.map(line => if line.contains("a") ("a", line) else if line.contains("b") ("b", line) else (" - ", line)
    resultMap.writeByKey("a", "linesA.txt") 
    resultMap.writeByKey("b", "linesB.txt")

Любая такая вещь?

Ответы на вопрос(2)

Ваш ответ на вопрос