функция foreach в спаркре - PullRequest
       16

функция foreach в спаркре

0 голосов
/ 15 ноября 2018

Я относительно новичок в SparkR, и я планирую перенести цикл for в цикл foreach в SparkR (R / 3.3.3 & Spark / 2.2.0).

Я выполнил поиск в стеке, единственный соответствующий поток: цикл foreach SparkR

Но он дает только обходной путь, используя другие операции.

Из того, что я вижу, есть sparkrпакет существует (https://amplab -extras.github.io / SparkR-pkg / rdocs / 1.2 / index.html ) и содержит функцию foreach, но я действительно не понимаю его случаев использования, которые японадобится помощь / пример от сообщества, чтобы помочь.

Мой пример в оригинальном коде R следующий:

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

Я понимаю, что строка для цикла for должна быть разбита на несколько строк, но есть ли пример, с которого я могу начать, например, пример foreach кода, с которого я могу начать?Большое спасибо!

ps dataset содержит 2 столбца: ID и value.

1 Ответ

0 голосов
/ 27 ноября 2018

Как сказано в комментариях, в 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))

Я знаю, так как я все еще новичок в этом, так что это решение может быть не тем, что вы ищете. Но еще раз спасибо за комментарии!

...