首页 > 解决方案 > 使用 Unix 命令拆分拆分大型 JSON 数据

问题描述

拆分大数据Unix Split command的问题:。想要将此文件拆分为多个文件,每个文件有 1000 条记录。但我将输出作为单个文件 - 没有变化。split -l 1000 file.json myfile

创建PS文件,将 Pandas Dataframe 转换为 JSON。

编辑:事实证明,我的 JSON 格式只包含一行。wc -l file.json正在返回0

这是示例:file.json

[
{"id":683156,"overall_rating":5.0,"hotel_id":220216,"hotel_name":"Beacon Hill Hotel","title":"\u201cgreat hotel, great location\u201d","text":"The rooms here are not palatial","author_id":"C0F"},
{"id":692745,"overall_rating":5.0,"hotel_id":113317,"hotel_name":"Casablanca Hotel Times Square","title":"\u201cabsolutely delightful\u201d","text":"I travelled from Spain...","author_id":"8C1"}
]

标签: jsonbashdataset

解决方案


每个分区调用一次 jq 加上一次以确定分区的数量将是非常低效的。以下解决方案足以实现您的答案中认为可接受的分区:

jq -c ".[]" file.json | split -l 1000

但是,如果认为每个文件都需要进行漂亮的打印,则可jq -s .以为每个文件运行,这仍然比运行.[N:N+S]多次更有效。

如果每个分区本身应该是一个 JSON 数组,那么请参阅Splitting / chunking JSON files with JQ in Bash or Fish shell?


推荐阅读