2

R的(现已被取代的)独立羽化库有一个名为的函数,该函数feather_metadata()允许从磁盘上的羽化文件中读取列名和类型,而无需打开它们。这对于在 R 中加载羽毛文件时仅选择特定列很有用read_feather(path, columns = c(...))

现在羽毛格式是箭头库的一部分,feather_metadata()不再包括在内。

箭头中是否有等效功能可以在加载之前从 R 读取磁盘上的列名和文件类型?

4

1 回答 1

1

在当前版本的箭头 R 包中,没有直接替代feather::feather_metadata(path),但有两种解决方法可能对您有用:

  • 如果您只需要列名(而不是数据类型),您可以这样做:

    rf <- arrow::ReadableFile$create(path)
    fr <- arrow::FeatherReader$create(rf)
    names(fr)
    
  • 如果你需要列的数据类型,你可以试试这个:

    arrow::read_feather(path, as_data_frame = FALSE)
    

    这给出了你正在寻找的输出,它应该非常快(因为它不会文件转换为 R 数据帧)但它确实读取了完整的文件(或者至少它内存映射了完整的文件)因此,如果您的 Feather 文件非常大,您可能不想这样做。

于 2021-03-09T03:55:31.740 回答