使用 Scala 合并并行操作的输出

Combine output of parallel operations using Scala

以下代码片段并行处理过滤器并将单个文件写入输出directory.Is有没有办法获得一个大的输出文件?

Array(
        (filter1, outputPathBase + fileName),
        (filter2, outputPathBase + fileName),
        (filter3, outputPathBase + fileName)   

      ).par.foreach {
        case (extract, path) => extract.coalesce(1).write.mode("append").csv(path)
      }

谢谢。

您可以通过合并数组将数组缩减为单个 RDD,这将通过 Spark

并行执行每个过滤器*
val rdd = Array(
        filter1
        filter2,
        filter3).reduce(_.union(_))

rdd.write.mode("append").csv(path)

在这种情况下无需将 Array 转换为 ParArray

我假设 filter1filter2filter3 属于同一类型 RDD[T]