여러 개의 JSON 개체로 구성된 파일이 있습니다. 이러한 파일을 읽고 JSON 개체에서 특정 필드를 추출해야합니다. 사물을 복잡하게하기 위해 일부 객체에는 모든 필드가 포함되어 있지 않습니다. JSON 객체가 200,000 개가 넘는 대용량 파일을 다루고 있습니다. 여러 코어에 작업을 분할하고 싶습니다. 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 올바르게 코드 덩어리를 게시 배운 시간에 분석 속이고 있다고 생각. (또한'%! in %'은 표준 연산자가 아닙니다 ...이 코드를 실행하기 위해 의존하는 모든 패키지의 이름을 포함시켜야합니다. –