Scala 错误:值saveAsTextFile不是Unit-Spark的成员
我正在尝试使用以下命令将结果保存到文本文件中:Scala 错误:值saveAsTextFile不是Unit-Spark的成员,scala,apache-spark,Scala,Apache Spark,我正在尝试使用以下命令将结果保存到文本文件中: results.collect().foreach { rule => println("[" + rule.antecedent.mkString(",") + "=>" + rule.consequent.mkString(",") + "]," + rule.confidence)}.saveAsTextFile("/user/cloudera/rules") 但我有一个错误: <console>:43: error
results.collect().foreach { rule => println("[" + rule.antecedent.mkString(",") + "=>" + rule.consequent.mkString(",") + "]," + rule.confidence)}.saveAsTextFile("/user/cloudera/rules")
但我有一个错误:
<console>:43: error: value saveAsTextFile is not a member of Unit
results.collect().foreach { rule => println("[" + rule.antecedent.mkString(",") + "=>" + rule.consequent.mkString(",") + "]," + rule.confidence)}.saveAsTextFile("/user/cloudera/rules")
:43:错误:值saveAsTextFile不是单元的成员
results.collect().foreach{rule=>println(“[”+rule.antecedent.mkString(“,”+“=>”+rule.restinent.mkString(“,”+”),“+rule.confidence)}.saveAsTextFile(“/user/cloudera/rules”)
我需要改变什么?我不理解错误…foreach操作返回一个
单元
,它是空返回值的替代:
scala> val a = (0 to 5).foreach(println)
0
1
2
3
4
5
a: Unit = ()
如果要保存原始的结果
,则需要使用以下内容:
results.collect.saveAsTextFile(...)
否则,如果您试图对
结果的每个元素应用操作。收集然后保存结果,则需要使用映射,并对每个元素执行其他操作(因为打印也会返回单位)。如果要保存,请使用:
results.map { rule =>
"[" + rule.antecedent.mkString(",") + "=>" + rule.consequent.mkString(",") + "]," + rule.confidence
}.saveAsTextFile("/user/cloudera/rules")
当我用spark初始化变量时,我收到了相同的错误消息。读取而不是sc
。其中一个返回一个不包含saveAsTextFile
方法的DataSet
,另一个返回包含该方法的RDD。希望它能帮助别人