scala - 如何在 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)
}
有没有其他方法可以并行化迭代以减少时间。
解决方案
推荐阅读
- excel - 当数据分布在多个列/范围(UNIQUE 函数)时,如何在 Excel 中获取唯一的值列表
- angular - Angular 和 Jasmine MAT_DIALOG_DATA "TypeError: ctx.currentRoles is undefined "
- python - MultipartEncoder - requests_toolbelt
- sql - 内部连接 postgresql - 我怎样才能使“id”在 2 个表中相同
- python - Django 搜索不适用于项目 1 需要代码
- excel - Sub Excel VBA的可选范围
- java - 如何在两个java类中使用Arraylist
- android - 如何跨导航堆栈重用android片段(Android中的iOS标签栏实现)?
- unit-testing - 单元测试新手,希望对此单元测试有一些意见
- python - Discord Bot 加入语音频道