相关疑难解决方法(0)

如何将大文本文件拆分为具有相同行数的较小文件?

我有一个大的(按线数)纯文本文件,我想分成较小的文件,也按行数.因此,如果我的文件有大约2M行,我想将它分成10个包含200k行的文件,或者包含20k行的100个文件(加上一个包含剩余部分的文件;均匀可分的无关紧要).

我可以在Python中相当容易地做到这一点,但我想知道是否有任何一种使用bash和unix utils的忍者方式(而不是手动循环和计数/分区行).

unix bash file

468
推荐指数
11
解决办法
45万
查看次数

提高使用 jq 处理大文件时的性能

用例

我需要以内存高效的方式(即,无需将整个 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)

当前解决方案

我能够通过使用jqsplit如本SO Post 中所述来实现所需的结果。由于jq流式解析器, …

json split sed jq

17
推荐指数
1
解决办法
2064
查看次数

将大型json文件拆分为多个较小的文件

我有一个大的JSON文件,大约500万条记录和大约32GB的文件大小,我需要加载到我们的Snowflake数据仓库中.我需要将此文件分解为每个文件大约200k条记录(大约1.25GB)的块.我想在Node.JS或Python中执行此操作以部署到AWS Lambda函数,遗憾的是我还没有编写任何代码.我有C#和很多SQL经验,学习node和python都在我的待办事项列表中,所以为什么不直接进入,对吧!?

我的第一个问题是"哪种语言更适合这个功能?Python或Node.JS?"

I know I don't want to read this entire JSON file into memory (or even the output smaller file). I need to be able to "stream" it in and out into the new file based on a record count (200k), properly close up the json objects, and continue into a new file for another 200k, and so on. I know Node can do this, but if Python can also do this, I feel like it would be …

python lambda json node.js snowflake-cloud-data-platform

7
推荐指数
2
解决办法
2万
查看次数

将 JSON 数组拆分为单独的文件/对象

我以这种格式从 Cassandra 导出了 JSON。

[
  {
    "correlationId": "2232845a8556cd3219e46ab8",
    "leg": 0,
    "tag": "received",
    "offset": 263128,
    "len": 30,
    "prev": {
      "page": {
        "file": 0,
        "page": 0
      },
      "record": 0
    },
    "data": "HEAD /healthcheck HTTP/1.1\r\n\r\n"
  },
  {
    "correlationId": "2232845a8556cd3219e46ab8",
    "leg": 0,
    "tag": "sent",
    "offset": 262971,
    "len": 157,
    "prev": {
      "page": {
        "file": 10330,
        "page": 6
      },
      "record": 1271
    },
    "data": "HTTP/1.1 200 OK\r\nDate: Wed, 14 Feb 2018 12:57:06 GMT\r\nServer: \r\nConnection: close\r\nX-CorrelationID: Id-2232845a8556cd3219e46ab8 0\r\nContent-Type: text/xml\r\n\r\n"
  }]
Run Code Online (Sandbox Code Playgroud)

我想将其拆分为单独的文件:

{ "correlationId": "2232845a8556cd3219e46ab8", "leg": 0, "tag": "received", …

json posix jq

6
推荐指数
2
解决办法
2万
查看次数

如何加载太大而无法装入内存的 Django 固定装置?

我希望使用此处描述的装置加载初始数据

https://docs.djangoproject.com/en/dev/howto/initial-data/

对于小数据集来说这很容易。但是我希望加载一个无法装入内存的大 CSV。我该如何将其序列化为大型 JSON 格式?我是否必须通过手动编写开头“[”和结尾“]”来破解它,或者是否有更清洁的方法可以做到这一点?

django django-fixtures

5
推荐指数
1
解决办法
1204
查看次数

将较大的 json 文件拆分为较小的文件

我有一个 2.37 GB 的 json 文件,包含大约 210 万条记录。我想使用 jq 来遍历文件并每 100000 条记录创建一个新文件。

IE

部分1.json 部分2.json 部分3.json 部分4.json 部分5.json 等

有人用jq做过这个吗?

json jq

3
推荐指数
1
解决办法
1844
查看次数