gpt4 book ai didi

r - 使用 SparkR 2.0.0 进行并行分布式处理

转载 作者:行者123 更新时间:2023-11-30 09:09:34 25 4
gpt4 key购买 nike

我是 Spark 新手,正在作为 Hadoop 边缘节点的 RServer 上尝试 SparkR 2.0.0。创建和查询 DataFrame 都很好。但这里有一个问题,我想看看它是如何工作的。

给定一个项目,我需要查询外部数据源以获取相关数据,通过一些 ML 库调用进行机器学习并转储结果。我需要对大约 500 个项目进行此学习。显然,我想使用所有可用工作节点上的所有 CPU,以便可以并行进行 500 ML 运行。我注意到开源 R 上的 native ML 调用不需要太多时间来运行该项目数据集的算法(通常约为 10000 行 - 总共 1 分钟即可获取数据、运行 ML 并提供我需要的结果)。

请注意,我没有调用 Spark 的 ML。但我试图看看我是否可以仅使用 Spark 进行分布式并行计算,并看看我能学习多快。另一种方法是加载 Spark DataFrame 中的所有 500 个项目,然后让 Spark 来确定如何在分区的 DataFrame 上运行 ML。但这是一项单独的工作和研究,旨在比较其在多个、并行和分布式迷你 ML 运行(每个项目 1 个)方面的表现。

问题:如何在 Spark R 中调用并行化?我是否必须使用 callJmethod 传递项目的 SparkDataFrame 并调用每个项目的函数调用?或者是否有更好的方法来并行化我的项目集合并对每个项目进行函数调用(如并行 dApply)?任何提示/帮助表示赞赏。

抱歉,帖子太长了。我对 Spark 相当陌生,似乎有 Scala/Java/R 和 Python 方法,并且可能 R 方法相对限于我还没有 catch 的其他方法。谢谢!

最佳答案

您尝试过spark.lapply函数(link ->spark.lapply)吗?基本上,它使用 Spark 作为资源提供者,而不是“大数据”处理的工具。如果你的 500 个项目的数据可以在内存中处理,你可以创建一个包含 500 个元素的列表(每个元素都有相应的数据+一些其他东西,比如超参数),并将其与适当的函数一起传递给spark.lapply(比如一些机器学习)模型)。 Spark 应该做的事情类似于并行包(在工作节点上打开单独的 RSession,分发计算并将结果返回给驱动程序)。

关于r - 使用 SparkR 2.0.0 进行并行分布式处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43260786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com