3

我有一个简单的设置如下:

Sys.info()
                 sysname                      release                      version                     nodename 
               "Windows"                      "7 x64" "build 7601, Service Pack 1"                "OCTAVE-WS21" 
                 machine                        login                         user               effective_user 
                "x86-64"                      "kjain"                      "kjain"                      "kjain" 

我正在尝试在 R 中使用 doRedis 包来设置集群。我的机器上安装了“2.8.2101”版本的 Redis。首先,我尝试在本地机器(在 RStudio 中)上运行作业:

library(doRedis)
registerDoRedis('jobs')
getDoParName()
#[1] "doRedis"
getDoParRegistered()
#[1] TRUE
startLocalWorkers(n = 2,queue = 'jobs')
getDoParWorkers()
#[1] 2

我已检查 Redis 是否作为服务运行(redis-cli ping 返回“PONG”)

但是,当我尝试运行一个简单的 foreach 循环时,出现以下错误;即使我重新启动所有内容,我也会收到相同的错误:

workerIndex = foreach(i=1:100) %dopar% {i}

sprintf("%s:%.0f.env", queue, ID) 中的错误:无效格式 '%.0f'; 对字符对象使用格式 %s

显然,顺序版本工作正常:

workerIndex = foreach(i=1:100) %do% {i}
workerIndex
#[[1]]
#[1] 1

#[[2]]
#[1] 2
etc.

请帮忙!任何评论/指针表示赞赏。如果您需要更多信息,请告诉我。

4

1 回答 1

5

我刚刚遇到了和你一样的错误,但是在 Ubuntu 上。我找到的解决方案在这个网站上:https ://github.com/bwlewis/doRedis/issues/23

简而言之,在 R 中运行: options('redis:num'=TRUE)

如果您对错误的来源感到好奇,请随时单击链接并阅读它:)

问候, 吉迪恩

于 2015-09-24T09:58:55.653 回答