1

我正在使用featherPython(收集数据)和 R(用于分析)之间的数据交换包,在 Python 中写入和读取数据非常快。但是,在 R 中读取相同的羽化对象非常慢,对于具有大约 80K 行和 24 列的大约 10MB 羽化对象,大约需要几分钟。每次我在本地读取羽毛对象时,都不是由于网络延迟。

我认为唯一可能是,一些变量(准确地说是 5 个)是Python 中的类型,当 R 导入它们时int64,它们会被强制转换为类型。double这会导致 Rcoercing int64 to double在读取羽毛对象期间发出警告。任何人都可以确认这一点还是有其他解释?

编辑:强制不是问题,我在 Python 中重新保存了int64列,int32而 R 中的读取仍然很慢。需要帮忙。

编辑2:示例代码根据要求,这是我正在运行的代码。基本上只是从子文件夹中读取羽毛对象:

library(feather)
test_feather = read_feather("C:/my_folder/subfolder/test.feather")
4

1 回答 1

1

问题是由于feather在 Linux 环境中创建对象,而在 Windows 系统中读取 R 中的同一对象。我不完全了解细节,但基本上每个操作系统在表示磁盘上的二进制数据时都有不同的规范。

我不记得在文档中阅读过这个问题/警告(尽管我认为它是显而易见的和隐含的),但也许一点提醒可能会避免一些未来的人犯同样的错误。

于 2017-08-14T13:23:40.943 回答