我希望使用 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回调函数,我将不胜感激。
答案 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接口。