2

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

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

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

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

但是,这在 R 中似乎是不可能的,例如sparklyr库。我检查了 RSpark,但它似乎是在 R 中查询/整理数据的另一种方式,仅此而已。

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

4

1 回答 1

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/ DataSetAPI 接口。

于 2016-10-08T16:32:03.630 回答