Bu konuyla ilgili bir kaç yayın daha görmüştüm ve hiçbiri benim yaşadığım problemle aynı değildi. . Ama burada gider:
Ben
cores <- detectCores() cl <- makeCluster(8L,outfile="output.txt") registerDoParallel(cl) x <- foreach(i = 1:length(y), .combine='list',.packages=c('httr','jsonlite'), .multicombine=TRUE,.verbose=F,.inorder=F) %dopar% {function(y[i])}
Bu genellikle iyi çalışır, ama şimdi hata atıyor kullanarak paralel bir işlev çalıştırıyorum: çıktı incelenmesinin ardından
Error in serialize(data, node$con) : error writing to connection
.txt dosyası görüyorum:
starting worker pid=11112 on localhost:11828 at 12:38:32.867
starting worker pid=10468 on localhost:11828 at 12:38:33.389
starting worker pid=4996 on localhost:11828 at 12:38:33.912
starting worker pid=3300 on localhost:11828 at 12:38:34.422
starting worker pid=10808 on localhost:11828 at 12:38:34.937
starting worker pid=5840 on localhost:11828 at 12:38:35.435
starting worker pid=8764 on localhost:11828 at 12:38:35.940
starting worker pid=7384 on localhost:11828 at 12:38:36.448
Error in unserialize(node$con) : embedded nul in string: '\0\0\0\006SYMBOL\0\004\0\t\0\0\0\003')'\0\004\0\t\0\0\0\004expr\0\004\0\t\0\0\0\004expr\0\004\0\t\0\0\0\003','\0\004\0\t\0\0\0\024SYMBOL_FUN'
Calls: <Anonymous> ... doTryCatch -> recvData -> recvData.SOCKnode -
unserialize
Execution halted
Bu hata ben aralıklı. Bellek bol (32GB) ve bellekte başka büyük R nesneleri yok. Paralel koddaki işlev, bir dizi küçük json veri nesnesini buluttan alır ve bir R nesnesine yerleştirir - bu nedenle büyük veri dosyaları yoktur. Neden ara sıra gömülü bir nul olduğunu ve durduğunu bilmiyorum.
Csv dosyalarını da buluttan çeken bir işlevle benzer bir sorunum var. Her iki işlev de şimdiye kadar R 3.3.0 ve R 3.4.0 altında iyi çalıştı.
Windows'ta R 3.4.1 ve RStudio 1.0.143 kullanıyorum.
Error in unserialize(node$con) : ReadItem: unknown type 100, perhaps written by later version of R
gömülü nul hatası kayboldu gibi görünüyor:
İşte benim sessionInfo
sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United
States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] parallel stats graphics grDevices utils datasets methods base
other attached packages:
[1] RJSONIO_1.3-0 RcppBDT_0.2.3 zoo_1.8-0 data.table_1.10.4
doParallel_1.0.10 iterators_1.0.8
[7] RQuantLib_0.4.2 foreach_1.4.3 httr_1.2.1
loaded via a namespace (and not attached):
[1] Rcpp_0.12.12 lattice_0.20-35 codetools_0.2-15 grid_3.4.1
R6_2.2.2 jsonlite_1.5 tools_3.4.1
[8] compiler_3.4.1
GÜNCELLEME
Şimdi başka benzer hata alıyorum bu. Ayrıca, .Rhistory ve .Rdata'yı silmeyi ve paketler alt klasörümü silmeyi ve tüm pacakları yeniden yüklemeyi denedim. En azından bu yeni hata tutarlı görünüyor. "Bilinmeyen tip 100" ne olduğunu bulamıyorum.
Belki de ortamınızda kümelere ihraç edilen büyük nesneleriniz var mı? Bu foreach çağrısını kendi işlevine sokmayı deneyin. –
Bu sorun gibi görünmüyor - aslında ortamda tüm yabancı nesneleri sildim. – user2642948
Sorunu, bize verebileceğiniz '' 'işleviyle yeniden üretebiliyor musunuz? –