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