我需要以内存高效的方式(即,无需将整个 JSON blob 读入内存)~5G将 JSON 数据的大文件 ( )拆分为带有换行符分隔的 JSON 的较小文件。每个源文件中的 JSON 数据是一个对象数组。
不幸的是,源数据不是 换行符分隔的 JSON,在某些情况下,文件中根本没有换行符。这意味着我不能简单地使用该split命令通过换行符将大文件拆分为较小的块。以下是源数据如何存储在每个文件中的示例:
带有换行符的源文件示例。
[{"id": 1, "name": "foo"}
,{"id": 2, "name": "bar"}
,{"id": 3, "name": "baz"}
...
,{"id": 9, "name": "qux"}]
Run Code Online (Sandbox Code Playgroud)
没有换行符的源文件示例。
[{"id": 1, "name": "foo"}, {"id": 2, "name": "bar"}, ...{"id": 9, "name": "qux"}]
Run Code Online (Sandbox Code Playgroud)
以下是单个输出文件所需格式的示例:
{"id": 1, "name": "foo"}
{"id": 2, "name": "bar"}
{"id": 3, "name": "baz"}
Run Code Online (Sandbox Code Playgroud)
我能够通过使用jq和split如本SO Post 中所述来实现所需的结果。由于jq流式解析器, …
我正在使用Docker for Mac和Docker Compose来开发Node.js应用程序,我遇到了一个错误,因为package.json文件被锁定了.在正在npm install --save <package>运行的容器中运行后的特定错误是:
npm WARN saveError EBUSY: resource busy or locked, rename
'/Example/package.json.1647356251' -> '/Example/package.json'
Run Code Online (Sandbox Code Playgroud)
简化的包结构是:
? docker/
Dockerfile
docker-compose.yaml
package.json
Run Code Online (Sandbox Code Playgroud)
该Dockerfile包含:
FROM node:9.5
ENV SOURCE_CODE /Example
COPY package.json $SOURCE_CODE/package.json
RUN npm --prefix $SOURCE_CODE install $SOURCE_CODE
WORKDIR $SOURCE_CODE
Run Code Online (Sandbox Code Playgroud)
该泊坞窗,compose.yaml文件包含:
version: "3"
services:
node:
build:
context: ./
dockerfile: ./docker/Dockerfile
volumes:
- ./node_modules/:/Example/node_modules/
- ./package.json:/Example/package.json
Run Code Online (Sandbox Code Playgroud)
该的package.json文件包含:
{
"name": "example",
"version": "1.0.0",
"description": "example",
"license": "UNLICENSED"
}
Run Code Online (Sandbox Code Playgroud)
运行docker-compose …
我正在Windows机器上运行,尝试通过在批处理模式下运行SQL Workbench来导出查询结果.阅读SQL Workbench文档后,听起来WbExport是从查询中导出结果的最佳命令.
另一个要求是我想要运行的查询是在外部.sql文件中.同样,根据SQL文档,在批处理模式下,我可以使用WbInclude命令或-script参数从外部.sql文件运行查询.但是,我无法使用WbExport正常工作.我已经尝试使用sqlwbconsole64.exe和sqlworkbench.jar在批处理模式下运行SQL Workbench.请参阅以下四个示例:
java -jar sqlworkbench.jar -profile='connection-profile' -command='WbExport -file=test_export.txt -type=text -delimiter=\t; WbInclude test.sql;'
java -jar sqlworkbench.jar -profile='connection-profile' -command='WbExport -file=test_export.txt -type=text -delimiter=\t' -script='test.sql'
sqlwbconsole64 -profile='connection-profile' -command='WbExport -file=test_export.txt -type=text -delimiter=\t; WBInclude test.sql;'
sqlwbconsole64 -profile='connection-profile' -command='WbExport -file=test_export.txt -type=text -delimiter=\t' -script='test.sql'
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!