Рассмотрим следующую логику, в которой мы разделяем RDD
на 2 RDD
и соединяем его вместе.
Делает ли разбиение myRdd
оценкой 2 раза или 1 раз?
val myRdd = spark.sparkContext.textFile(myDirectory)
.map(line => myMapLogic(line))
.filter(line => myFilterLogic(line))
.flatMap(line => myFlatMapLogic(line))
val splitRdd1 = myRdd.filter(line => line._2)
val splitRdd2 = myRdd.filter(line => !line._2)
val mergeResult = splitRdd1.leftOuterJoin(splitRdd2)
Я знаю, что если я позвоню myRdd.count
2 раза, myRdd
будет оцениваться дважды, но что, если действие вызывается один раз, но мне нужно разделить RDD
на два и соединить его вместе?