Mimic-code: 无法统计文件 chartevents.csv 未知错误

创建于 2018-10-29  ·  25评论  ·  资料来源: MIT-LCP/mimic-code

先决条件

  • [ X] 如果您已完成以下所有操作,请在此行的括号之间添加 X:

    • 查看在线文档: https :

    • 检查您的问题是否尚未解决: https :

当我运行 Postgres_load_data 脚本时,前三个表被加载,之后我收到消息:无法统计文件 CHARTEVENTS.csv:未知错误。 有没有人有这种情况并且可以提供帮助。

最有用的评论

好的, could not stat file "CHARTEVENTS.csv": Unknown error实际上是 PostgreSQL 11 中的一个错误。在幕后它调用fstat()以确保该文件不是目录,不幸的是fstat()是一个 32 位程序,它不能处理像图表事件这样的大文件。 我使用 PostgreSQL 10.5 在 Windows 上测试了构建,但没有收到此错误,所以我认为它是相当新的。

最好的解决方法是保持文件压缩(即,将它们保存为.csv.gz文件)并使用 7zip 直接从压缩文件加载数据。 在测试中,这似乎仍然有效。 这里有一个关于如何执行此操作的非常详细的教程: https :

上面的简短版本是您保留.csv.gz文件,将 7zip 二进制文件添加到 Windows 环境路径,然后调用postgres_load_data_7zip.sql文件加载数据。 您可以在一切之后使用postgres_checks.sql文件来确保正确加载了所有数据。

编辑:对于您后来的错误,您在使用这种 7zip 方法的地方,我不确定为什么它没有加载。 尝试仅重新下载 ADMISSIONS.csv.gz 文件,看看它是否仍会引发同样的错误。 也许有新版本的 7zip 需要我更新脚本之类的!

所有25条评论

您是否使用项目下载页面上提供的校验和文件检查了chartevents.csv副本的完整性? 也许它在下载或解压缩过程中损坏了。

是的,我使用命令 md5 checksum_md5_zipped.txt 并且所有表都正常...

我还尝试使用压缩数据并运行 postgres_load_data script_7zip。 在这种情况下,我得到:在数据中找到未引用的换行符。 提示:使用带引号的 CSV 字段来表示新行。

我还检查了 md5 checksum_md5_unzipped.txt,一切正常。

听起来好像您正在运行的脚本与您拥有的数据不匹配。 我会确保:

  1. 所有文件都在同一个目录下
  2. 所有文件都具有相同的文件扩展名; 例如他们都是.csv.gz
  3. 您正在运行 postgres_load_data_7zip.sql 文件,要么 (i) 来自同一文件夹,要么 (ii) 在将 mimi_data_dir 配置为指向数据目录之后。

过去,如果没有更多信息(例如文件夹设置的屏幕截图、系统信息、运行的确切命令和确切的错误消息),远程调试真的很困难。

你好,

谢谢您的回答。

  1. 所有文件都在同一个目录下
  2. 所有文件都具有相同的文件扩展名 csv
  3. 在将 mimi_data_dir 配置为指向数据目录后,我正在运行 posgres_load_data.sql 文件。
    这是我得到的确切命令和错误。
    step1
    step2
    system_information

太好了,非常有帮助,感谢您提供更多信息。 我认为这就像文件不在文件夹中一样简单。 你能仔细检查一下你的文件夹C:/Users/Lejla/Desktop/MIMICIII是否有CHARTEVENTS.csv文件吗?

可能是您尝试提取所有压缩文件,但它因图表事件而失败,因此您只有一个.csv.gz文件(原因可能是因为提取的文件是 33GB 并且您的空间不足,或者您的文件系统是 FAT32 (!),或者谁知道)。 在这种情况下,您可能希望编辑加载脚本以直接从.csv.gz加载它。 您可以通过替换来做到这一点:

\copy CHARTEVENTS from 'CHARTEVENTS.csv' delimiter ',' csv header NULL ''

\copy CHARTEVENTS from PROGRAM '7z e -so CHARTEVENTS.csv.gz' delimiter ',' csv header NULL ''

非常感谢您的回答。 这次我尝试使用 zip 文件,并为其运行脚本。 这次我得到了其他
zip_file
消息......也许它会有所帮助。

你介意显示目录的内容吗?

我不介意。这是我文件夹的内容
directory

好的, could not stat file "CHARTEVENTS.csv": Unknown error实际上是 PostgreSQL 11 中的一个错误。在幕后它调用fstat()以确保该文件不是目录,不幸的是fstat()是一个 32 位程序,它不能处理像图表事件这样的大文件。 我使用 PostgreSQL 10.5 在 Windows 上测试了构建,但没有收到此错误,所以我认为它是相当新的。

最好的解决方法是保持文件压缩(即,将它们保存为.csv.gz文件)并使用 7zip 直接从压缩文件加载数据。 在测试中,这似乎仍然有效。 这里有一个关于如何执行此操作的非常详细的教程: https :

上面的简短版本是您保留.csv.gz文件,将 7zip 二进制文件添加到 Windows 环境路径,然后调用postgres_load_data_7zip.sql文件加载数据。 您可以在一切之后使用postgres_checks.sql文件来确保正确加载了所有数据。

编辑:对于您后来的错误,您在使用这种 7zip 方法的地方,我不确定为什么它没有加载。 尝试仅重新下载 ADMISSIONS.csv.gz 文件,看看它是否仍会引发同样的错误。 也许有新版本的 7zip 需要我更新脚本之类的!

你好,
谢谢你的详细解释。 我安装了 PostgreSQL 10.5,现在进程正在运行。 我认为加载所有表需要很多时间,但我不再收到“未知错误”。 非常感谢大家的帮助。

伟大的!

好的, could not stat file "CHARTEVENTS.csv": Unknown error实际上是 PostgreSQL 11 中的一个错误。在幕后它调用fstat()以确保该文件不是目录,不幸的是fstat()是一个 32 位程序,它不能处理像图表事件这样的大文件。 我使用 PostgreSQL 10.5 在 Windows 上测试了构建,但没有收到此错误,所以我认为它是相当新的。

最好的解决方法是保持文件压缩(即,将它们保存为.csv.gz文件)并使用 7zip 直接从压缩文件加载数据。 在测试中,这似乎仍然有效。 这里有一个关于如何执行此操作的非常详细的教程: https :

上面的简短版本是您保留.csv.gz文件,将 7zip 二进制文件添加到 Windows 环境路径,然后调用postgres_load_data_7zip.sql文件加载数据。 您可以在一切之后使用postgres_checks.sql文件来确保正确加载了所有数据。

编辑:对于您后来的错误,您在使用这种 7zip 方法的地方,我不确定为什么它没有加载。 尝试仅重新下载 ADMISSIONS.csv.gz 文件,看看它是否仍会引发同样的错误。 也许有新版本的 7zip 需要我更新脚本之类的!

使用 PostgreSQL 10.11 帮助了我......谢谢

太好了,非常有帮助,感谢您提供更多信息。 我认为这就像文件不在文件夹中一样简单。 你能仔细检查一下你的文件夹C:/Users/Lejla/Desktop/MIMICIII是否有CHARTEVENTS.csv文件吗?

可能是您尝试提取所有压缩文件,但它因图表事件而失败,因此您只有一个.csv.gz文件(原因可能是因为提取的文件是 33GB 并且您的空间不足,或者您的文件系统是 FAT32 (!),或者谁知道)。 在这种情况下,您可能希望编辑加载脚本以直接从.csv.gz加载它。 您可以通过替换来做到这一点:

\copy CHARTEVENTS from 'CHARTEVENTS.csv' delimiter ',' csv header NULL ''

\copy CHARTEVENTS from PROGRAM '7z e -so CHARTEVENTS.csv.gz' delimiter ',' csv header NULL ''

谢谢,这对我有用:
\copy my_table_name from program 'cmd /c type input_data.csv' delimiter ',' csv header;
input_data.csv 像 11GB 大小。

“无法复制大文件”的问题出现在 11 和 12 版本中。 但是 10 是可以的。 如何在不压缩数据文件的情况下覆盖它,但也许可以将一些 Postgresql 程序文件从 v.10 插入/交换到 v 11 和 12?
解决方法:
从程序 'cmd /c "type x:\pathto\file.txt"' 中复制 t(c,d) 和(格式文本);
- 对于我的需要来说很慢。 我需要默认复制命令的速度

您可以考虑使用其他命令行工具将文件拆分为多个文件,然后一次加载单个文件。 在 unix 系统上,这可以使用split来完成,你可以安装 GNU coreutils for Windows 来使用它。

我想我也遇到了和你一样的问题,但是我用的是非常新的12版本,有什么办法可以解决吗? 使用压缩文件?

是的,如果我没记错的话,压缩文件小于 4 GB,您可以通过使用压缩加载脚本(7z 或 gzip)来避免此错误。

好的,我现在试试这个方法,非常感谢你的回复

那么,根本不使用压缩或拆分就没有解决方法吗? 11、12 引擎使用 10 版本的 Postgresql COPY 命令?
如我所说:
我需要默认复制命令的速度,但对于大文件 + 12 的版本
这对我的需求至关重要。

好吧,PostgreSQL 是开源的,所以欢迎您尝试自己提供修复:)

以下是相关讨论: https :

否则,您将拥有此线程中提出的三种解决方法(更改版本、使用压缩文件、将文件拆分为多个部分)。 我相信还有其他解决方法。

将第 10 版 COPY 功能的代码的工作部分迁移到 11 和 12 不是很明显吗? 或者它是如此硬编码,导致所有人崩溃? :)

@ghYura这是社区维护的资源,因此如果您有改进代码库的建议,那么我建议您提出拉取请求。

我在 12.X 和 13.X 版本中将 CSV 加载到表中时遇到错误,但它在 PostgreSQL 版本 10.15 中就像一个魅力。 谢谢大家的帮助:)

此页面是否有帮助?
0 / 5 - 0 等级