我想在 cran 上使用 r 包,例如forecast
等与sparkr并遇到以下两个问题。
我应该在工作节点上预安装所有这些软件包吗?但是当我读spark的源码时这个文件,似乎spark会自动压缩包并通过--jars或--packages将它们分发给工作人员。我应该怎么做才能使工作人员可以使用依赖项?
假设我需要使用提供的功能forecast
in a map
转换,我应该如何导入包。我是否需要执行以下操作,在地图函数中导入包,是否会进行多次导入:
SparkR:::map(rdd, function(x){
library(forecast)
then do other staffs
})
Update:
阅读更多源代码后,看来,我可以使用includePackage
根据以下内容在工作节点上包含包这个文件。那么现在的问题是我是否必须手动在节点上预安装软件包?如果这是真的,那么问题 1 中描述的 --jars 和 --packages 的用例是什么?如果这是错误的,如何使用 --jars 和 --packages 来安装软件包?
重复这个很无聊,但是你不应该使用内部 RDD API首先。它已在第一个 SparkR 官方版本中被删除,并且它根本不适合一般用途。
直到新的低级 API* 准备就绪(参见示例SPARK-12922 SPARK-12919, SPARK-12792)我不会将 Spark 视为运行纯 R 代码的平台。即使它发生变化,使用 R 包装器添加本机(Java / Scala)代码也可能是更好的选择。
话虽这么说,让我们从你的问题开始:
-
RPackageUtils
旨在处理使用 Spark 包创建的包。它不处理标准 R 库。
-
是的,您需要在每个节点上安装软件包。从includePackage
文档字符串:
假定该包已安装在 Spark 集群中的每个节点上。
* 如果您使用 Spark 2.0+,您可以使用 dapply、gapply 和 lapply 函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)