问题标签 [parallel-collections]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
332 浏览

scala - 使用 Scala 并行收集时,Spark UI 活动作业卡住

我有一个包含 1000 列的数据框,我试图通过对每一列进行一些操作来获取一些统计信息。我需要对每一列进行排序,所以我基本上不能对它进行多列操作。我在一个名为processColumn的函数中执行所有这些列操作

为了完成这项工作,我将数据帧保存在内存中,并对其进行 scala 多线程处理。所以,代码是这样的

假设初始数据帧是 df

因此,如果您看到,我指定一次运行 4 个线程。但有时会发生一个线程卡住的情况,并且我有超过 4 个活动作业正在运行。而那些被卡住的永远不会结束。

我觉得从 scala 并行集合开始的线程有一个超时,有时它不会等待所有作业完成。然后 unpersist 被调用。因此,活动作业现在永远卡住了。我试图通过查看源代码以查看 scala 集合操作是否有超时来弄清楚,但无法确定。

任何帮助将不胜感激。另外,如果您有任何问题,请告诉我。谢谢你。

0 投票
1 回答
89 浏览

scala - 如何最有效地在scala中合并和聚合2个地图?

我有以下两张地图:

在第一种方法中,我使用 foldLeft 来实现合并和累积:

在第二种方法中,我尝试使用支持并行操作的 aggregate() 函数:

但我注意到 foldLeft 比聚合快得多。

我正在寻找有关如何使此操作最有效的建议。

0 投票
2 回答
337 浏览

scala - 尝试在 Scala 中并行化嵌套循环

我正在使用嵌套循环和外部 jar 比较 scala/spark 中的 2 个数据帧。

我希望做的是为外循环添加一些并行性,以便我可以创建一个 5 的线程池并从外循环的集合中提取 5 条记录,并将它们与内循环的集合进行比较,而不是连续执行此操作. 所以结果是我可以指定线程数,在任何给定时间从外部循环的集合处理中针对内部循环中的集合有 5 条记录。我该怎么做呢?

0 投票
1 回答
3732 浏览

scala - Scala 2.13 中缺少导入 scala.collection.parallel

Scala 2.12 中的并行集合可以像这样开箱即用地导入

但是为什么在 Scala 2.13 包中scala.collection.parallel似乎丢失了?

0 投票
0 回答
77 浏览

scala - 面向非分布式并行计算的 Spark 及其性能

我是 Spark 的新手。我想知道缩小到单个节点时它的性能如何,以及与常规非分布式并行方法相比的开销有多少,因此我可以评估在 Spark 中编写非分布式并行计算程序是否是一个不错的选择,并在需要时使其扩展到多个节点。

那么Spark能否高效地用于本地单机并行计算呢?如果是,与常规 Scala 并行集合或 Java 8 并行流相比,它的性能如何?开销显着吗?

此外,特别是对于图,GraphX 的性能与Graph for ScalaJGraphT相比如何

0 投票
1 回答
496 浏览

scala - 使用并行集合的scala http请求

我正在尝试使用 scala 并行集合。我正在尝试从已设置的本地服务器获取数据,这是我的代码

使用小尺寸输入时,没有问题,但是,当我尝试使用大输入尺寸时,程序抛出SocketException,我检查了服务器,服务器没有错误,在我看来,客户端正在关闭连接早期的。而且,这些大型输入在单独运行时通常需要不到 90 秒的时间来获得响应。

我尝试在 http 请求中扩展连接并读取超时选项,但仍然出现异常。

谁能帮我理解,为什么客户端要关闭连接?

对于http请求,我正在使用客户端com.softwaremill.sttp.client

0 投票
1 回答
75 浏览

scala - 中断scala并行收集

有什么方法可以中断 Scala 中的并行集合计算?

例子:

我希望t.interrupt中断由 产生的所有线程par,但这没有发生,它一直在内部旋转ForkJoinTask.externalAwaitDone。看起来该方法清除了中断状态并继续等待生成的线程完成。

这是 Scala 2.12