Застосовується до
Revolution Analytics

Намагаються використовувати кілька ODBC, підключення через распараллеліть робочі потоки може не вдатися, як показано нижче:

loaddata <- function(cn){result <- sqlQuery(cn,'select * from boston')return(head(result))}library(RODBC)cn1 <- odbcConnect("RevoTestDB", uid='RevoTester', pwd='RevoTester')cn2 <- odbcConnect("RevoTestDB", uid='RevoTester', pwd='RevoTester')cn3 <- odbcConnect("RevoTestDB", uid='RevoTester', pwd='RevoTester')cn4 <- odbcConnect("RevoTestDB", uid='RevoTester', pwd='RevoTester')rxSetComputeContext('localpar')system.time ({z <- rxExec(loaddata, rxElemArg(list(cn1,cn2,cn3,cn4)), packagesToLoad='RODBC')})Error in do.call(.rxDoParFUN, as.list(args)) :task 1 failed - "first argument is not an open RODBC channel"

Проблема полягає в тому, робочих процесів, отримують підключення ODBC, як це працює.Мова, що підключення до певного процесу, таким чином, якщо робочі є спільний доступ до батьківського процесу (наприклад, багатоядерних виконавці, створені за допомогою породження), батьків підключення не можна використовувати спільно працівників. Розповсюдження ODBC обчислень на-роздвоєною-виконавці, встановити підключення до кожного працівника, входить до складу розподілені завданням.Наприклад:

loaddata <- function(){library(RODBC)cn <- odbcConnect("RevoTestDB", uid='RevoTester', pwd='RevoTester')result <- sqlQuery(cn,'select * from boston')return(head(result))}z <- system.time({z <- rxExec(loaddata,packagesToLoad='RODBC')})

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.