R jsonlite - 流式传输大文件并将块合并为 1 个数据帧

问题描述

我有一个 public function buildForm(FormBuilderInterface $builder,array $options) { $builder ->add('dateentree') ->add('quantite') ->add('idproduit',EntityType::class,[ 'class' => Produit::class,'choice_label' => 'nom' ]) ; } 格式的大型 JSON 文件 (1GB)。我想使用 ndjson 导入 R 来做一些工作。

jsonlite 命令似乎正是我所需要的。使用此示例文件

jsonlite::stream_in()

然后我运行(基于 How to use jsonlite stream_in function with custom handler without creating temp files 的回答):

{"i": "A","a": "1","b": "sdsd","c": "dsds"}
{"i": "B","a": "2","b": "sddd","c": "dsd","d": "2"}
{"i": "C","a": "3","b": "dsdsd","c": "dsds","d": "3"}

但是,我最终得到了一个空的 my_final_df <- new.env() stream_in(file("myfile.json"),handler = function(df){ my_final_df <- rbind(my_final_df,df) },pagesize = 1) 。就上下文而言,我真正的 my_final_df 大约有 100,000 行和 1GB。因此,我想将 JSON 设置为 pagesize 或类似的东西:即以 1000 行的块读取文件并将它们连接起来。

读取文件最有效的方式是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)