首页 > 解决方案 > 如何在 Scala 中实现并行化

问题描述

我正在将 Spark 数据帧转换为数组,然后遍历数组以执行 spark 作业

    val suppliersList = mutable.MutableList[SuppliersCompany]()
    val df_arr: Array[SuppliersCompany] = df.collect()

     for (suppliersCompany <- df_arr) {
      suppliersList+=UnifiedDedupeHelper.applyDedupe(suppliersCompany)
    }

我在数据框中有近 600000 行,sparkjob 需要一些时间,所以完成所有迭代需要很多时间。我也在 scala 中尝试过并行收集,但这并没有太大帮助。

 val df_arr: ParArray[SuppliersCompany] = df.collect().par

    df_arr.foreach{
      suppliersCompany=>suppliersList+=UnifiedDedupeHelper.applyDedupe(suppliersCompany)
    }

有没有其他方法可以并行化迭代以减少时间。

标签: scalaapache-sparkparallel-processing

解决方案


推荐阅读