Мне известно, что типичным способом записи строк RDD или Dataframe в HDFS или S3 является использование saveAsTextFile
или df.write
. Тем не менее, я хотел бы выяснить, как записывать отдельные записи внутри преобразования карты, например:
myRDD.map(row => {
if(row.contains("something")) {
// write record to HDFS or S3
}
row
}
Я знаю, что это можно сделать с помощью следующего кода,
val newRDD = myRDD.filter(row => row.contains("something"))
newRDD.saveAsTextFile("myFile")
но я хочу продолжить обработку исходного myRDD
после записи в HDFS, и для этого потребуется кэширование myRDD
, а у меня недостаточно ресурсов памяти.