doRedis в Windows 7 выдает ошибку при запуске цикла foreach

У меня есть простая настройка следующим образом:

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 для настройки кластера. На моем компьютере установлена ​​версия Redis "2.8.2101". Для начала я попытался запустить задание на моей локальной машине (в 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", очередь, идентификатор): неверный формат "%.0f"; использовать формат% s для символьных объектов

Очевидно, что последовательная версия работает нормально:

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

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

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

1 ответ

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

Короче говоря это в R: options('redis:num'=TRUE)

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

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

Другие вопросы по тегам