我有一個由多個JSON對象組成的文件。我需要閱讀這些文件並從JSON對象中提取某些字段。使事情複雜化,一些對象不包含所有的字段。我正在處理超過200,000個JSON對象的大文件。我想將作業分成多個核心。我曾試着用doSNOW,foreach和parallel進行實驗,但實際上並不瞭解如何做到這一點。以下是我希望提高效率的代碼。R中的並行編程
foreach (i in 2:length(linn)) %dopar% {
json_data <- fromJSON(linn[i])
if(names(json_data)[1]=="info")
next
mLocation <- ifelse('location' %!in% names(json_data$actor),'NULL',json_data$actor$location$displayName)
mRetweetCount <- ifelse('retweetCount' %!in% names(json_data),0,json_data$retweetCount)
mGeo <- ifelse('geo' %!in% names(json_data),c(-0,-0),json_data$geo$coordinates)
tweet <- rbind(tweet,
data.frame(
record.no = i,
id = json_data$id,
objecttype = json_data$actor$objectType,
postedtime = json_data$actor$postedTime,
location = mLocation,
displayname = json_data$generator$displayName,
link = json_data$generator$link,
body = json_data$body,
retweetcount = mRetweetCount,
geo = mGeo)
)
}
這時候你學會了在SO正確張貼代碼塊解析欺騙。 (另外'%!'不是一個標準的操作符......你應該包含所有依賴的包的名字,以使這段代碼運行 –