我有这个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
)不是一种选择。