使用sparklyr的R回调函数

时间:2016-10-08 16:01:36

标签: r apache-spark sparkr sparklyr

我希望使用 sparklyr 来使用 mapPartitions reduce Spark(http://spark.apache.org/docs/latest/programming-guide.html)的功能。

pyspark 中很容易,我唯一需要使用的是普通的python代码。我可以简单地添加python函数作为回调函数。太容易了。

例如,在 pyspark 中,我可以使用以下两个函数:

mapdata = self.rdd.mapPartitions(mycbfunc1(myparam1))
res = mapdata.reduce(mycbfunc2(myparam2))

然而,似乎在R中这是不可能的,例如 sparklyr 库。我检查了RSpark,但它似乎是R中查询/争论数据的另一种方式,没有别的。

如果有人让我知道如何在R中使用这两个函数,使用R回调函数,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

SparkR中,您可以使用内部函数 - 因此使用前缀SparkR::: - 来完成相同的工作。

newRdd = SparkR:::toRDD(self)                  
mapdata = SparkR:::mapPartitions(newRdd, function(x) { mycbfunc1(x, myparam1)})
res = SparkR:::reduce(mapdata, function(x) { mycbfunc2(x, myparam2)})

我认为sparklyr仅与DataFrame / DataSet API接口。