我有一个由多个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正确张贴代码块解析欺骗。 (另外'%!'不是一个标准的操作符......你应该包含所有依赖的包的名字,以使这段代码运行 –