如何使用invoke调用Sparklyr中的Spark函数

时间:2017-04-25 21:18:44

标签: r scala apache-spark flatmap sparklyr

我试图在RStudio的Sparklyr中使用invoke来对HDFS中的文本文件进行简单的单词计数,并且没有弄清楚语法。我可以使用(类似于扩展中的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")

我想要做的是在该文本文件上使用flatmap来执行经典的scala代码:

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

但是甚至还没有弄清楚调用的语法。 flatMap是textFile的一种方法。当然有人之前做过这件事,我只是没想好。

谢谢!

1 个答案:

答案 0 :(得分:0)

也许你已经弄明白了(已经有几个月了),但是对于使用dplyr收集,你只需要这样说:

myFileCollected <- myFileDF %>% collect

然后我会尝试使用dplyr函数,即mutate(这是闪光优势之一)。