scala – 在Spark中使用Futures
Spark作业为RDD中的每个元素创建远程Web服务.一个简单的实现可能看起来像这样:
def webServiceCall(url: String) = scala.io.Source.fromURL(url).mkString rdd2 = rdd1.map(x => webServiceCall(x.field1)) (上面的例子一直很简单,不处理超时). RDD的不同元素的任何结果之间没有相互依赖性. 通过使用Futures通过对RDD的每个元素并行调用Web服务来优化性能,可以改善上述内容吗?或者Spark本身是否具有内置的优化级别,以便它将并行运行RDD中每个元素的操作? 如果可以使用Futures优化上述内容,是否有人会有一些代码示例显示在传递给Spark RDD的函数中使用Futures的正确方法. 谢谢 解决方法
它没有. Spark在分区级别并行化任务,但默认情况下,每个分区在单个线程中按顺序处理.
这可能是一种改进,但很难做到这一点.尤其是: >在进行任何重组之前,每个Future都必须在同一阶段完成. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |