Sparklyr:如何在Spark表中的列和R数据帧之间应用操作?

时间:2017-04-27 09:41:39

标签: r apache-spark dplyr sparkr sparklyr

我有这个Spark表:

xydata
y: num 11.00 22.00 33.00 ...
x0: num 1.00 2.00 3.00 ...
x1: num 2.00 3.00 4.00 ...
...
x788: num 2.00 3.00 4.00 ...

R环境中的这个数据框:

penalty
p: num 1.23 2.34 3.45 ...

表和数据框中的行数相同。

我想在y中使用xydata减去p中的penalty值,类似于y = y - p

有没有办法做到这一点?我知道我可以使用mutate来更新y,它只能在同一个表中使用。

我正在考虑将两个表合并到一个新的Spark表中:

xydata_new
y: num 11.00 22.00 33.00 ...
x0: num 1.00 2.00 3.00 ...
x1: num 2.00 3.00 4.00 ...
...
x788: num 2.00 3.00 4.00 ...
p: num 1.23 2.34 3.45 ...

这样我就可以使用mutate(y = y - p)了,但我又找不到合并两个表的好方法。我尝试在my other question中使用dplyr::combine,但结果并不令人满意。

数据量很大,可以达到40GB甚至更多,所以collect将所有表放入R环境然后在R中进行操作(cbind然后导出为Spark表使用tbl)不是一种选择。

0 个答案:

没有答案