【问题标题】:Error while reading with feather package使用羽毛包读取时出错
【发布时间】:2017-01-24 14:37:12
【问题描述】:

我正在使用羽毛包的 read_feather 读取 ~50Mb 的 scv 文件。

读取时产生如下错误:

Error in .Call("feather_coldataFeather", PACKAGE = "feather", feather,  : 
negative length vectors are not allowed

我没有找到这个错误的描述。我以前又看了一会儿,没有发现这样的错误。我有点被这样的错误绊倒了。

提前感谢您的提示。

【问题讨论】:

  • 我的猜测是,如果该调用适用于其他scv 文件,但不是这个文件,那么这个文件可能有问题。你能手动检查文件的正确性吗?
  • stat.ethz.ch/pipermail/r-help/2015-January/425051.html 可能你的向量实际上太长了。 this 也可能是相关的
  • 要查看它是损坏的文件(Tim 的建议)还是 R 无法处理的东西(Cath 的建议),您可以尝试使用 Python 读取它吗? pip install feather 在命令行然后 import featherfeather.read_dataframe(path) 在 python 代码中?
  • 不幸的是,R 和 Python 是我所知道的仅有的两个可以帮助验证 Feather 文件的非 Java 环境,并且 R 包中可能存在错误(Feather 本身处理中存在错误有大文件,但这不是你的问题)。
  • @hrbrmstr 我已经重新编译了数据集 - 删除了所有 NA,确保数字是数字(没有非数字值)。而且羽毛还可以

标签: r feather


【解决方案1】:

答案是此错误消息表明 .feather 文件已损坏。如果您不使用新格式的数据覆盖文件,错误消息就会消失。在以其他格式保存数据之前,请使用新文件或删除现有文件。

我遇到了同样的问题。不幸的是,错误消息不是很有帮助,而且它似乎只是您在类似情况下可能会收到的至少四种可能的消息之一。

在我的例子中,我将 Python 数据框保存到 .feather 文件中,然后尝试在 R 中读取它。在我更改了数据框中的数据格式后,错误开始发生——特别是我更改了一些将字符串列转换为整数列,将一列字符串转换为浮点列 - 并将数据框保存到之前用于存储字符串数据的同一个 .feather 文件中。这导致了所述错误消息。

在我删除 .feather 文件并以新格式重新保存数据后,一切正常。

我在尝试通过更改数据格式并在现有文件上保存来复制此特定消息时收到的其他三个错误是:

  1. * 捕获段错误 *: '内存未映射'
  2. * 捕获总线错误 *:“不存在的物理地址”,并且
  3. “这个 Feather 文件很旧,在 0.3.0 版本之后将无法读取”

从好的方面来说,在尝试读取损坏的 .feather 文件时,我找不到返回错误数据而不是错误的示例,但是对于同一个问题,获得多种基本上没有信息的错误并不理想。

【讨论】:

    猜你喜欢
    • 2021-06-12
    • 2018-08-22
    • 1970-01-01
    • 2019-06-18
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    相关资源
    最近更新 更多