使用spark加载旧文件后:
val rdd1 = sc.newAPIHadoopFile[LongWritable,BinaryWritable[Array[Byte]],
MultiInputFormat[Array[Byte]]]("s3://spark-tst/test/input/").map(_._2.get()),
我得到了org.apache.spark.rdd.RDD[Array[Byte]]
格式的RDD。现在,我需要将过滤器功能应用于这些RDD,但得到"org.apache.spark.SparkException: Task not serializable"
。如果引入中间rdd“ val s = rdd1.collect.toList
”,则过滤器功能可以应用于RDD;但是“收集”不适用于具有大量文件的情况。另一个问题是,更改过滤器后,数据还需要以其原始节俭格式写回到s3。
感谢任何帮助/建议。