0
我正在從在線API加載數據。數據分頁,因此我需要連續撥打電話。無法用foreach()使用並行化調用休息api
因此,我設置了一個最終rbind()輸出的並行foreach()循環。
下面的代碼:
library('foreach')
library('parallel')
library('jsonlite')
registerDoMC(cores = parallel::detectCores())
data <- foreach(page = 1:10, .combine = rbind) %dopar% {
raw.data <- fromJSON(paste(endpoint, '&page=', page, sep =''))
raw.data <- raw.data$results
data.piece <- raw.data[c('id', 'scraper', 'title', 'text', 'ts', 'url', 'pertinence', 'source')]
data.piece
}
端點是一個REST URL。
循環返回NULL,並且它立即運行(每次調用確實需要幾秒鐘)。
因此看起來呼叫被跳過。如果我不是並行運行相同的代碼,它可以毫無問題地工作。
您應該在上面的代碼塊之前包含您設置並行後端的代碼,以及使這個示例可重現的所有其他內容('endpoint','page'等)。 – nrussell
頁面已在代碼中定義。我添加了使用過的庫。 正如我所說的端點是一個休息網址(我不能透露),但任何休息網址都可以;正如我所說的並行運行代碼(%do%而不是%dopar%),完美地工作,所以端點不是問題。 – Bakaburg
如果有任何網址,那麼可以使用任何可以重現錯誤的網址來舉例說明。 – nrussell