gpt4 book ai didi

php - 使用大型数据集将 Parse JSON 输出转换为 CSV

转载 作者:可可西里 更新时间:2023-10-31 23:30:20 25 4
gpt4 key购买 nike

Parse 允许用户使用他们的导出 工具下载他们的数据,但只允许以 JSON 格式导出数据。我想要 CSV 格式,以便在 Excel 中进行分析。

虽然一个简单的脚本足以处理较小的 JSON 对象,但我要处理的数据集有 670,000 行,超过 360MB。在线转换器无法处理此文件大小,经常引用 PHP 已超出其内存限制。

我尝试过基于 PHP CLI 的脚本和在线转换器,但它们似乎都超出了分配的内存。当 ini_set('memory_limit', '4096M'); 仍然没有给我足够的内存时,我认为我需要一种新方法。

我目前正在使用这个基于 CLI 的脚本来解析数据:

// flatten to CSV
function flatten2CSV($file){
$fileIO = fopen($file, 'w+');
foreach ($this->dataArray as $items) {
$flatData = array();
$fields = new RecursiveIteratorIterator(new RecursiveArrayIterator($items));
foreach($fields as $value) {
array_push($flatData, $value);
}
fputcsv($fileIO, $flatData, ";", '"');
}
fclose($fileIO);
}

// and $this->dataArray is created here
function readJSON($JSONdata){
$this->dataArray = json_decode($JSONdata,1);
$this->prependColumnNames();
return $this->dataArray;
}

private function prependColumnNames(){
foreach(array_keys($this->dataArray[0]) as $key){
$keys[0][$key] = $key;
}
$this->dataArray = array_merge($keys, $this->dataArray);
}

如何使用 PHP 解决内存管理问题并解析这个大型数据集?对于大型数据集,是否有比 json_decode 更好的读取 JSON 对象的方法?

最佳答案

如果您能够在浏览器中运行脚本,请查看 PapaParse JavaScript 库 -- 它支持更大数据集的分块和多线程,并且可以转换 JSON to CSV .

具体config options这可能是相关的:

  • worker
  • block
  • 快速模式

或者,有一个 fork of PapaParse对于 Node.js,尽管没有 workerchunk 选项。

我与该库没有任何关系,但已成功将其用于大型数据集上的 CSV 到 JSON 转换。

关于php - 使用大型数据集将 Parse JSON 输出转换为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29709548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com