r - 使用r中的雪包将不同的数据发送到不同的节点
问题描述
我想要实现的是将我的数据集拆分为n
块,其中 n 是可用处理器的数量,并将每个块发送到不同的节点。因此,节点 1 将获得块 1,节点 2 接收块 2,...,节点 n 获得块 n。
以前,我曾经将整个数据集发送到每个节点,并且只在每个节点上发送子集数据,但随着我的数据集变得越来越大,我无法承受这样做,因为 usingclusterExport
会生成以下错误消息:
Error in serialize(data, node$con) : error writing to connection
我已经尝试了这么多不同版本的函数,clusterApply
或者clusterCall
它们都没有成功,因为显然将数据(分区为带有n
元素的列表)作为调用函数的参数与clusterApply
将数据发送到节点看起来R
仍然发送副本以执行导致类似错误的功能。
此外,我尝试在主节点上拆分数据(即创建了 data_1、...、data_n),并尝试在单个节点上读取每个部分,而不使用以下方法发送整个数据:
data_dist <- function(data){
node_data <<- eval(as.name(data))
}
clusterApply(cluster, str_c("data", 1:ncores, sep = "_"), data_dist)
但是节点仍然无法访问数据。任何帮助将不胜感激。
解决方案
推荐阅读
- google-cloud-platform - Google Cloud Datastore - 索引枚举短列表的可扩展性
- mysql - 如何仅选择包含 mySQL 中的部分或全部另一个集合的特定集合
- javascript - 访问Vuejs中父组件中动态加载的组件的输入
- r - R中前12个月的总和
- postgresql - 同一实体的多个表示正在与@OneToMany 合并
- r - R:字符向量的子集
- svg - 使用 SVG 框架完美掩盖 div 的问题
- typescript - TypeScript:在函数中强制执行泛型推断类型参数
- angular - 扩展现有的 Angular Web 项目,使其能够使用 NativeScript 构建移动应用程序
- python - 在转换期间被覆盖的列表