我是Spark和Scala编程的新手。

我试图使用Scala执行简单的pagerank算法。但是我在编译时遇到了这个错误。

error: value saveAsTextFile is not a member of Unit

我已经附上了我正在使用的代码。
val output = ranks.collect()
output.foreach(tup => println(tup._1 + " has page rank: " + tup._2)).saveAsTextFile("/user/ssimhadr/ScalaWordCount_Output")

最佳答案

正如Ryan所指出的,foreach仅用于副作用。它返回Unit而不是List本身。 Ergo没有链接。

现在,您实际正在执行以下操作:

val output = ranks.collect()
val realoutput: Unit = output.foreach(tup => println(tup._1 + " has page rank: " + tup._2))
realoutput.saveAsTextFile(...)
saveAsTextFile不是Unit的成员,您会收到错误消息

您应该这样做:
ranks.foreach(tup => println(tup._1 + " has page rank: " + tup._2))
ranks.saveAsTextFile(...)

要么
ranks.saveAsTextFile(...)
ranks.collect().foreach(tup => println(tup._1 + " has page rank: " + tup._2))

关于scala - 错误: value saveAsTextFile is not a member of Unit,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27068648/

10-12 04:52