- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个33GB的NDJSON文件,我需要读入R中的data.table。它压缩为2GB的文件,理想情况下,我想将其压缩。
该结构不是很重要,除了(通过jsonlite::stream_in
导入时),我需要的数据仅在几个简单的列中。我想尽快丢弃的三列中的绝大多数数据权重保存在list
中。
我的两个挑战是:如何并行化读入内容,以及如何限制内存使用量(现在此文件的工作人员正在使用175GB内存)?
我现在在做什么:dt.x <- data.table(flatten(stream_in(gzfile("source.gz"))[, -c(5:7)]))
想法:
也许有某种方法可以在stream_in
期间忽略NDJSON的一部分?
我可以在连接到gzfile
之前解析stream_in
连接,例如使用正则表达式,以删除多余的数据吗?
我可以在readLines
连接上执行类似gzfile
的操作来读取每个工人100万行的数据吗?
编辑:如果有可能,我的目标是使它可移植给其他用户,并将其完全保留在R中。
最佳答案
在阅读器中使用jqr
这是一个说明如何使用jqr读取压缩的NDJSON(aka JSONL)文件的记录:
$ R --vanilla
> library(readr)
> library(jqr)
> read_lines("objects.json.gz") %>% jq('.a')
[
1,
2,
3
]
>
read_file()
会产生相同的结果。由于这些功能必须解压缩整个文件,因此内存需求将很大。
con = file("objects.json", "r");
while ( length(line <- readLines(con, n = 1)) > 0) {
print( line %>% jq('.a') );
}
system2
和
wc
;其他所有失败的方法,您可以运行如下代码段:
n<-0;
con = file("objects.json", "r");
while (TRUE) {
readLines(con, n = 1);
if (length(line) == 0) { break; }
n <- n+1;
}
关于r - 阅读非常大的NDJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51032141/
我有一个 33GB NDJSON 文件,需要读入 R 中的 data.table。它被 gzip 压缩到一个 2GB 文件中,理想情况下我希望将其保持压缩状态。 结构并不那么重要,只是(当通过 jso
我有一个 20GB 的 .ndjson 文件,我想用 Python 打开它。文件太大了,所以我找到了一种方法,可以用一个在线工具将它分成 50 个和平。这是工具:https://pinetools.c
我正在尝试使用 ArduinoJson 来解析 Google 的 quickdraw 数据集,其中包含 .ndjson 文件,其中包含多个对象。我想出了如何使用以下简单代码检索文件中的第一个对象: D
是否可以序列化为NDJSON (换行符分隔的 JSON)使用 Json.NET? Elasticsearch API 使用 NDJSON 进行批量操作,我找不到任何迹象表明任何 .NET 库都支持这种
我有一个要求,我需要跟踪所有在允许 max_bad_records 后没有输入 bigquery 的坏记录。所以我需要将它们写在存储文件中以供将来引用。我正在使用适用于 Python 的 BQ API
我有一个要求,我需要跟踪所有在允许 max_bad_records 后没有输入 bigquery 的坏记录。所以我需要将它们写在存储文件中以供将来引用。我正在使用适用于 Python 的 BQ API
我正在尝试使用来自 this endpoint on lichess.org 的数据. 这是一个使用该数据流的 React 组件的最小工作示例。我正在使用一个名为 can-ndjson-stream
我是一名优秀的程序员,十分优秀!