我试图在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的一种方法。当然有人之前做过这件事,我只是没想好。
谢谢!
答案 0 :(得分:0)
也许你已经弄明白了(已经有几个月了),但是对于使用dplyr收集,你只需要这样说:
myFileCollected <- myFileDF %>% collect
然后我会尝试使用dplyr函数,即mutate(这是闪光优势之一)。