我见过的最常见的例子是将stream_in
与自定义处理程序一起使用stream_out
将已处理的json写入文件连接。我不清楚如何编写一个自定义处理程序来存储使用我的自定义处理程序逻辑处理的所有页面,并将它们绑定到一个要返回的数据框中,就像默认处理程序那样。
以下示例返回NULL:
library(jsonlite)
handler <- function(df){
# process df and store in result
...
return(result)
}
x <- stream_in(file_connection, simplifyVector = FALSE, handler = handler)
# x is NULL
有没有办法绑定多个处理程序调用的结果而不将中间结果写入磁盘?
答案 0 :(得分:1)
这里的第一个答案:https://stackoverflow.com/a/46646268/8440355
示例:
new_df <- new.env()
stream_in(file("file_name.json"), handler = function(df){
new_df <- rbind.data.frame(new_df,dplyr::filter(df$col_name_1<20))},
pagesize = 5000)
这需要将您的json轻松写入数据帧(在进行rbind时,很多嵌套可能会引发错误,但我希望您能获得“ new.env”逻辑来规避创建临时文件)