SparkR,worker无法加载库

时间:2015-09-22 19:01:55

标签: r apache-spark stringr sparkr

我最近开始使用SparkR。我有1个主人和3个工作人员和AWS。我正在使用RSudio Server。我的代码涉及stringr包,并且此包已安装到所有节点上的/usr/share/R/library

但是当我运行SparkR:::map(data, function(x){str_replace(x, "XXXX", "XXxxx")})时,我收到了错误

could not find function "str_replace"

如何在工作节点上加载包?

1 个答案:

答案 0 :(得分:2)

要从库中访问函数,您可以加载并附加它:

library(stringr) # Or require(stringr)
str_replace(x, "XXXX", "XXxxx")

或使用双冒号运算符:

stringr::str_replace(x, "XXXX", "XXxxx")

不幸的是::非常昂贵,所以如果您希望保持名称空间清洁,则应考虑创建本地绑定:

str_replace <- stringr::str_replace
str_replace(x, "XXXX", "XXxxx")

在不使用:::的内部API的一方可能不是最好的主意。忽视良好实践,在实践中有用很慢。