使用 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
我假设 filter1
、filter2
和 filter3
属于同一类型 RDD[T]
以下代码片段并行处理过滤器并将单个文件写入输出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
我假设 filter1
、filter2
和 filter3
属于同一类型 RDD[T]