Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用sparklyr的R回调函数_R_Apache Spark_Sparkr_Sparklyr - Fatal编程技术网

使用sparklyr的R回调函数

使用sparklyr的R回调函数,r,apache-spark,sparkr,sparklyr,R,Apache Spark,Sparkr,Sparklyr,我希望使用SparkyR使用mapPartitions和Spark()的reduce函数 在pyspark中很容易,我只需要使用一个简单的python代码。我可以简单地添加python函数作为回调函数。太容易了 例如,在pyspark中,我可以按如下方式使用这两个函数: mapdata = self.rdd.mapPartitions(mycbfunc1(myparam1)) res = mapdata.reduce(mycbfunc2(myparam2)) 然而,这在R中似乎是不可能的,例如

我希望使用SparkyR使用mapPartitions和Spark()的reduce函数

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

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

mapdata = self.rdd.mapPartitions(mycbfunc1(myparam1))
res = mapdata.reduce(mycbfunc2(myparam2))
然而,这在R中似乎是不可能的,例如Sparkyr库。我检查了RSpark,但这似乎是在R中查询/处理数据的另一种方式,而不是其他方式


如果有人告诉我如何在R中使用这两个函数以及R回调函数,我将不胜感激。

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

是的,这个答案是最有希望的,但我看到了一个错误。上面写着“未导出函数”。>toRDD错误:未找到对象“toRDD”>“SparkR::toRDD错误:“toRDD”不是从“命名空间:SparkR”SparkR导出的对象--版本2.0.0以下是一个示例。试试看SparkR::toRDD(self),注意三个冒号。哦,我明白了。这种方法故意使用内部函数:)@Kim在使用此API之前,请阅读删除此API的JIRA。它是内部的,因为它不够稳定,并且存在许多已知的bug。您可以肯定,这尚未在
sparklyr
中实现。