我使用feather
包进行Python(收集数据)和R(用于分析)之间的数据交换,在Python中编写和读取数据非常快。但是,在R中读取相同的羽毛对象非常慢,大约10MB的羽毛对象具有大约80K行和24列的分钟。每次我在本地读取羽毛对象,这不是由于网络延迟。
我认为唯一可能的是,Python中的一些变量(确切地说是5个)是int64
类型,当R导入它们时会被强制转换为double
类型。这会导致R在读取羽毛对象期间发出coercing int64 to double
警告。任何人都可以证实这一点还是有其他解释?
编辑:Coercing不是问题,我在int64
重新保存了Python中的int32
列,而R中的读数仍然很慢。需要帮助。
编辑2:示例代码根据要求,这是我正在运行的代码。只是从子文件夹中读取羽毛对象:
library(feather)
test_feather = read_feather("C:/my_folder/subfolder/test.feather")
答案 0 :(得分:1)
问题是由于在Linux环境中创建了feather
对象,而在R系统中正在读取R中的同一对象。我不完全了解细节,但基本上每个操作系统在磁盘上表示二进制数据时都有不同的规范。
我不记得在文档中阅读此问题/警告(虽然我认为这是明显的和隐含的),但也许一点提醒可能会使一些未来的人不会犯同样的错误。