2017-08-24 2 views
1

R gibt einen Fehler aus, wenn ich den folgenden Code zum Laden der Bibliothek data.table in den CPU-Cluster verwendet. Das data.table-Paket ist jedoch auf R installiert und funktioniert gut, wenn es außerhalb von parallelem Code verwendet wird.Die Bibliothek data.table kann nicht in R parallel geladen werden

no_cores <- detectCores() - 1 
cl <- makeCluster(no_cores,outfile="out.txt") 
clusterEvalQ(cl, library(data.table)) 

Fehler: -

clusterEvalQ(cl, library(data.table)) Error in checkForRemoteErrors(lapply(cl, recvResult)) : 3 nodes produced errors; first error: there is no package called 'data.table'

+0

Haben Sie das Paket installiert? Funktioniert einfach 'Bibliothek (data.table) '? –

+0

Ja. Ich bin in der Lage, dieses Paket außerhalb des parallelen Codes mit einem Problem zu verwenden – navo

+0

Kann den Fehler dann nicht reproduzieren. Versuchen Sie R und Pakete zu aktualisieren, starten Sie Ihre Sitzung, etc. –

Antwort

0

Aufbauend auf HenrikB sagte oben in den Kommentaren, habe ich dieses Problem beseitigen, indem meine .libPaths Hinzufügen() aufrufen zu clusterEvalQ():

.libPaths("C:/programs/rlib") 
library(parallel) 
no_cores<-detectCores()-1 

cl<-makeCluster(no_cores) 
#this is needed to see the package 
clusterEvalQ(cl, .libPaths("C:/programs/rlib")) 

# I'm using a function that uses the stringdist library 
clusterEvalQ(cl, library(stringdist)) 

#You need to load your data into the cluster also 
clusterExport(cl, "unmatched") 
clusterExport(cl, "matched") 

#now we're going to run it, amatch is a function in the stringdist lib 

parLapply(cl, unmatched,function(x) amatch(x,matched, maxDist = Inf)) 
Verwandte Themen