2015-08-11 3 views
1

У меня есть простая настройка следующим образом:doRedis на Windows 7 дает ошибку, как только цикл Еогеаспа запускаются

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" 

Я пытаюсь использовать пакет doRedis в R, чтобы создать кластер. У меня на компьютере установлена ​​версия «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-кли пинг возвращает «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. 

Пожалуйста, помогите! Любые комментарии/указатели приветствуются. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

ответ

3

Я только что столкнулся с той же ошибкой, что и вы, однако на Ubuntu. Решение, которое я нашел, было на этом сайте: https://github.com/bwlewis/doRedis/issues/23

В краткосрочной перспективе это в R: options('redis:num'=TRUE)

Если вам интересно, что источником ошибки является не стесняйтесь нажать на ссылку и прочитать об этом :)

С уважением, Гидеон

+0

, что работал. спасибо! – amok