sparkr中的foreach函数

foreach function in sparkr

我是 SparkR 的新手,我打算将 for 循环转换为 SparkR 中的 foreach 循环 (R/3.3.3 & Spark/2.2.0).

我在 Whosebug 上搜索过,唯一相关的帖子是: SparkR foreach loop

但它仅提供了使用其他操作的解决方法。

据我所知,有一个 sparkr 包存在 (https://amplab-extras.github.io/SparkR-pkg/rdocs/1.2/index.html) 并包含 foreach 功能,但我真的不明白它的用例,我需要它来自社区的一些 help/example 提供帮助。

我在原始 R 代码中的示例如下:

uniqueID <- unique(dataset$ID)
maxValueVector <- c()
for(id in uniqueID){
    maxValueVector <- c(maximums, max(dataset[which(dataset$ID == id), ]$value))
}

我知道for循环中的一行应该分成几行,但是有没有我可以开始的例子,比如我可以开始的例子foreach代码?非常感谢!

p.s。 dataset 包含 2 列:IDvalue

如评论所说,在SparkR中,我们一般不想使用foreach。在这种特殊情况下,我使用 sparkdataframe 运算符找到了答案并解决了这个问题:

## IDs is collected fo
IDs <- collect(distinct(select(dataset, 'ID')))
## I added the maximums column in order to figure out the future steps
## it basically satisfied what I need to have.
Maximums <- agg(groupBy(dataset, dataset$ID), maximums = max(dataset$value))
Maximums <- arrange(Maximums, desc(Maximums$maximums))

我知道,因为我对此还很陌生,所以这个解决方案可能不是您要找的。但再次感谢您的评论!