尺寸数不正确-并行R计算

洛伦佐·罗西(Lorenzo Rossi)

在R中使用tm包和并行计算时,我遇到了一个问题,我不确定自己是在做些愚蠢的事情还是错误。

我创建了一个小的可复制示例:

# Load the libraries
library(tm)
library(snow)

# Create a Document Term Matrix
test_sentence = c("this is a test", "this is another test")
test_corpus = VCorpus(VectorSource(test_sentence))
test_TM = DocumentTermMatrix(test_corpus)

# Define a simple function that returns the matrix for the i-th document
test_function = function(i, TM){ TM[i, ] }

如果使用此示例运行一个简单的lapply,我将获得预期的结果而没有任何问题:

# This returns the expected list containing the rows of the Matrix
res1 = lapply(1:2, test_function, test_TM)

但是,如果我并行运行它,则会出现错误:

第一个错误:尺寸错误

# This should return the same thing of the lapply above but instead it stops with an error
cl = makeCluster(2)
res2 = parLapply(cl, 1:2, test_function, test_TM)
stopCluster(cl)
西蒙·G

问题在于不同的节点不会自动tm加载程序包。但是,加载包是必需的,因为它定义[了相关对象类的方法。

下面的代码执行以下操作:

  1. 启动集群
  2. tm加载到所有节点
  3. 将所有对象导出到所有节点
  4. 运行功能
  5. 停止集群

cl <- makeCluster(rep("localhost",2), type="SOCK")
clusterEvalQ(cl, library(tm))
clusterExport(cl, list=ls())
res <- parLapply(cl, as.list(1:2), test_function, test_TM)
stopCluster(cl)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尺寸数不正确-并行R计算

来自分类Dev

setMeasuredDimension()中的尺寸不正确或尺寸计算不正确?

来自分类Dev

setMeasuredDimension()中的尺寸不正确或尺寸计算不正确?

来自分类Dev

计算不正确

来自分类Dev

计算不正确

来自分类Dev

C++ 并行矩阵乘法,不正确的计算

来自分类Dev

Gnuplot的计算不正确

来自分类Dev

CakePHP计算不正确

来自分类Dev

GROUP BY计算不正确

来自分类Dev

尺寸不正确?

来自分类Dev

计算R中的斐波那契数的结果不正确

来自分类Dev

不正确的尺寸不正确

来自分类Dev

带有侧边栏的R / Shiny Leaflet应用在移动设备上的尺寸不正确

来自分类Dev

对于循环计算不正确

来自分类Dev

Python NLTK不正确的情绪计算

来自分类Dev

我的Webworkers似乎计算不正确

来自分类Dev

表达式计算不正确

来自分类Dev

负数时累积计算不正确

来自分类Dev

球体的体积计算不正确

来自分类Dev

jQuery元素宽度计算不正确

来自分类Dev

Matplotlib MLAB熵计算不正确?

来自分类Dev

computeDistanceBetween似乎计算不正确

来自分类Dev

计算不正确的两倍

来自分类Dev

计算周薪-总值不正确

来自分类Dev

JavaScript 计算结果不正确

来自分类Dev

角度计算不正确的元素高度

来自分类Dev

Highcharts 不正确的 pertange 计算

来自分类Dev

功率计算不正确 - C

来自分类Dev

为什么不正确地计算平均会员数?