jq 中的输入 json 文件大小限制是多少?
What's the input json file size limit in jq?
是否存在 jq 处理的最大 json 文件大小。我从 github 来源构建 jq 1.6。
我尝试处理 288MB json 文件(在以下命令中,handwriting_data_info1.json)并遇到以下错误:
$ jq 'INDEX(.images[]; .id) as $imgs | { "filename_with_label" :
[ .annotations[] |
select(.attributes.type=="letter" ) |
$imgs[.image_id] + {label:.text} |
{id:.id} + {filename:.file_name} + {label:.label}
]
}' handwriting_data_info1.json > handwriting_data_info1_with_label.json
jq: src/jv.c:1261: jvp_object_get_slot: Assertion `slot == -1 || (slot >= 0 && slot < jvp_object_size(object))' failed.
Aborted (core dumped)
仅供参考,上面使用的 jq 过滤器定义适用于相对较小的 json 文件。
我认为 jq 的最大输入 json 文件大小。如果是这样,有没有办法增加 jq 的输入 json 文件大小?
感谢您的阅读。
jq 可以处理任意长的 JSON 流,但是如果流中的任何单个 JSON 项目太大而无法放入内存,则 "streaming parser"必须使用。此解析器仅在指定 --stream
命令行选项时才处于活动状态。
"streaming parser" 节省内存,但速度明显较慢且使用起来有些困难。有关流解析器的更多信息,请参阅 jq 手册和 jq FAQ.
验证 jq 是否可以在不使用 --stream 选项的情况下管理输入的一种方法是 运行 empty
过滤器,例如:
jq空INPUT.json
发布的错误是断言错误;此类错误通常与输入实体的大小无关。但是,如果 jq 程序试图生成不适合内存的大型结构,则可能会生成此类错误。
除了 RAM 施加的上述限制外,我不知道对 JSON 输入的大小施加任何其他限制,而且我已经看到 jq 进程单个 JSON 多个实体每个千兆字节。
是否存在 jq 处理的最大 json 文件大小。我从 github 来源构建 jq 1.6。
我尝试处理 288MB json 文件(在以下命令中,handwriting_data_info1.json)并遇到以下错误:
$ jq 'INDEX(.images[]; .id) as $imgs | { "filename_with_label" :
[ .annotations[] |
select(.attributes.type=="letter" ) |
$imgs[.image_id] + {label:.text} |
{id:.id} + {filename:.file_name} + {label:.label}
]
}' handwriting_data_info1.json > handwriting_data_info1_with_label.json
jq: src/jv.c:1261: jvp_object_get_slot: Assertion `slot == -1 || (slot >= 0 && slot < jvp_object_size(object))' failed.
Aborted (core dumped)
仅供参考,上面使用的 jq 过滤器定义适用于相对较小的 json 文件。
我认为 jq 的最大输入 json 文件大小。如果是这样,有没有办法增加 jq 的输入 json 文件大小?
感谢您的阅读。
jq 可以处理任意长的 JSON 流,但是如果流中的任何单个 JSON 项目太大而无法放入内存,则 "streaming parser"必须使用。此解析器仅在指定
--stream
命令行选项时才处于活动状态。"streaming parser" 节省内存,但速度明显较慢且使用起来有些困难。有关流解析器的更多信息,请参阅 jq 手册和 jq FAQ.
验证 jq 是否可以在不使用 --stream 选项的情况下管理输入的一种方法是 运行
empty
过滤器,例如:jq空INPUT.json
发布的错误是断言错误;此类错误通常与输入实体的大小无关。但是,如果 jq 程序试图生成不适合内存的大型结构,则可能会生成此类错误。
除了 RAM 施加的上述限制外,我不知道对 JSON 输入的大小施加任何其他限制,而且我已经看到 jq 进程单个 JSON 多个实体每个千兆字节。