2013-05-22 72 views
0

我想用R的rjson庫上傳一個200MB的JSON文件到R,但我得到了Cannot fit vector over 1KB錯誤。 這是我用來將JSON文件加載到R上的代碼:加載200MB的JSON文件到R

UnpackJSON <- function(filePath) 
{ 
    con <- file(filePath, "r") 
    input <- readLines(con, -1L) 
    # jsonData <- fromJSON(paste(input, collapse="")) 
    jsonData <- sapply(input, fromJSON) 
    close(con) 
    df <- data.frame(jsonData) 
    temp <- rownames(df) 
    df <- as.data.frame(t(df)) 
    colnames(df) <- temp 
    rownames(df) <- NULL 
    return(df) 
} 

有沒有一種方法來優化這個代碼或另一種方式來這麼大的文件加載到R'我很欣賞任何輸入。

+0

好的。是否有可能將這種大型數據集加載到R中? – Dombey

回答

2

你爲什麼要用sapply來處理每行的JSON數據行?你難道不能說fromJSON(input)?我懷疑一個問題可能是垃圾收集器等待整個sapply循環完成,然後刪除分析過程中創建的任何副本(另請參閱註釋here)。所以,當向量化不起作用(這是非常優選的)時,您可以嘗試將sapply循環更改爲for循環,並查看是否有幫助。