Apache spark Spark RDD.saveAsTextFile异步保存

Apache spark Spark RDD.saveAsTextFile异步保存,apache-spark,Apache Spark,我有一个很大的RDD,它需要很多时间来收集。 我想让每个分区使用mapPartitionsWithIndex将其内容写入文本文件。但这不是一种异步方法 有人知道如何异步写出RDD内容吗?所有Spark RDD操作都是同步的AsyncRDDActions提供了其中一些的异步版本,但不提供saveAsTextFile。不过,将其包装在未来中并不重要: def saveAsync(rdd: RDD[String], path: String) = concurrent.Future { rdd.s

我有一个很大的RDD,它需要很多时间来收集。 我想让每个分区使用
mapPartitionsWithIndex
将其内容写入文本文件。但这不是一种异步方法


有人知道如何异步写出RDD内容吗?

所有Spark RDD操作都是同步的
AsyncRDDActions
提供了其中一些的异步版本,但不提供
saveAsTextFile
。不过,将其包装在
未来
中并不重要:

def saveAsync(rdd: RDD[String], path: String) = concurrent.Future {
  rdd.saveAsTextFile(path)
}

你为什么收集?只需写文本。这不是异步的,而是分布式的。我也不太明白这个问题。您在标题中提到
savastextfile
,然后在问题中谈到
collect
mapPartitionsWithIndex
。无论如何,我试图提供一个答案。saveastextfile的问题是,在整个任务完成之前,您无法读取结果文件,只有这样我才能开始将文件复制到驱动程序并开始加载,这是浪费时间!!,这就是为什么我考虑首先使用mapPartitionWithIndex而不是asyncSaveAsTextFile进行拆分。此外,我们是否有更好的方法来获取每个分区的rdd,而不使用mapPartitionsWithIndex,这需要一些时间来运行。所有这些都有点太强了。毕竟有
AsyncRDDActions