我有一个包含多个 JSON 对象的文件。我需要通读这些文件并从 JSON 对象中提取某些字段。更复杂的是,一些对象不包含所有字段。我正在处理一个包含超过 200,000 个 JSON 对象的大文件。我想将工作拆分到多个核心。我曾尝试使用 doSNOW、foreach 和 parallel 进行试验,但我真的不明白如何做到这一点。以下是我希望提高效率的代码。
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)
)
}