Как вызывать функции Spark в Sparklyr с помощью вызова

Я пытаюсь использовать вызов в Sparklyr RStudio для простого подсчета слов в текстовом файле в HDFS и не разобрался с синтаксисом. Я могу вернуть весь файл в виде списка, используя (аналогично примеру count в документе SparklyR по расширениям — http://spark.rstudio.com/extensions.html):

getFileCollect <- function(sc, path) {
    spark_context(sc) %>% 
      invoke("textFile", path, 1L) %>%
        invoke("collect")
}

fc <- getFileCollect(sc, "hdfs:///tmp/largeTomes/bigEx.txt")

Что я хочу сделать, так это плоскую карту в этом текстовом файле, чтобы сделать классический код Scala:

.flatMap(line => line.split(" "))
            .map(word => (word, 1))
            .reduceByKey(_ + _)

Но даже не приблизились к выяснению синтаксиса вызова. flatMap — это метод textFile. Наверняка кто-то делал это раньше, и я просто неправильно думаю.

Благодарю вас!


person Dan F    schedule 25.04.2017    source источник


Ответы (1)


Может быть, вы поняли это (прошло несколько месяцев), но для использования collect с dplyr вам просто нужно выразить это так:

myFileCollected <- myFileDF %>% collect

Тогда я бы попробовал использовать функции dplyr, т.е. мутировать (это одно из преимуществ sparklyr).

person rcid    schedule 19.07.2017