0

我目前正在使用这个Miller命令将 CSV 文件转换为 JSON 数组文件:

mlr --icsv --ojson --jlistwrap cat sample.csv > sample.json

它工作正常,但 JSON 数组太大。

Miller 能否将输出拆分为许多较小的 JSONX行文件?

例如,如果原始 CSV 有 100 行,我可以修改命令以输出 10 个 JSON 数组文件,每个 JSON 数组包含 10 个转换后的 CSV 行吗?

如果每个 JSON 数组也可以像这样包装,则可以加分:

{
  "instances": 

//JSON ARRAY GOES HERE

}
4

1 回答 1

2

你可以运行这个

mlr --c2j --jlistwrap put -q '
  begin {
    @batch_size = 1000;
  }
  index = int(floor((NR-1) / @batch_size));
  label = fmtnum(index,"%04d");
  filename = "part-".label.".json";
  tee > filename, $*
' ./input.csv

您将拥有一个以part-00xx每 1000 条记录命名的文件。

于 2022-01-10T08:02:18.170 回答