运行foreach循环后,Windows 7上的doRedis会出现错误

时间:2015-08-11 10:59:35

标签: r foreach r-doredis

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

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”,队列,ID):         格式'%。0f'无效;将格式%s用于角色对象

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

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

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

请帮忙!任何评论/指针都表示赞赏。如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:3)

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

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

如果您很好奇错误的来源是什么,请点击链接并阅读相关内容:)

此致 吉丁