json - 使用 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"}
]
解决方案
每个分区调用一次 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?
推荐阅读
- r - ggplot2 中的错误?
- css - 在背景图像上创建淡入/淡出动画在反应中更改 css
- serverless - 无服务器 - 部署期间出现“未知对象类型异步函数”错误
- python - 多处理——从多个运行时接收所有消息?
- javascript - 没有在方法前面等待就不会更新数据库
- coq - 是否有从假设中提取含义的策略(除了倒置)?
- mysql - 如何找到两个日期之间的间隔,然后用mysql中的函数返回它们?
- java - 一次读取一行 CSV 文件,然后在循环中将每一行解析为类字段,然后将该类对象存储到一个数组中
- html - 带有输入字段的按钮不想与右上角对齐
- macos - 如何从 Segue 视图中获取 ManagedObjectContext