2

我正在尝试在 RStudio 的 Sparklyr 中使用调用来对 HDFS 中的文本文件进行简单的字数统计,但尚未弄清楚语法。我可以通过使用(类似于 SparklyR doc on extensions - 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 的一个方法。肯定有人以前这样做过,我只是想不对。

谢谢!

4

1 回答 1

1

也许你想通了(已经几个月了),但是对于使用 collect 和 dplyr,你只需要这样说:

myFileCollected <- myFileDF %>% collect

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

于 2017-07-19T11:45:18.917 回答