无法获取价值

时间:2019-07-29 14:41:45

标签: scala apache-spark

scala> val blank_line_accumulator = sc.accumulator(0,"Blank Lines")
blank_line_accumulator: org.apache.spark.Accumulator[Int] = 0

val input_file2 = sc.textFile("file:///home/cloudera/input2.txt").foreach{x=>if(x.length()==0)blank_line_accumulator +=1}
input_file2: Unit = ()
  

scala> input_file2.value:40:错误:值不是   单位成员                 input_file2.value

这是我在访问值时遇到的问题。

2 个答案:

答案 0 :(得分:1)

对于我来说,访问它像魅力一样起作用的值没有任何错误。可能是您在做其他一些简单的错误。带上新的火花壳,然后重试。.

scala> blank_line_accumulator.value
res3: Int = 3

要调试此尝试,请在下面进行尝试...应该给出Class[Int] = int

scala> blank_line_accumulator.value.getClass
res4: Class[Int] = int

并尝试调试scala> blank_line_accumulator.getClass 应该在下面给出...

res6: Class[_ <: org.apache.spark.Accumulator[Int]] = class  
 org.apache.spark.Accumulator

答案 1 :(得分:0)

movies['Year'].str[-1]==')'.replace(')','') 不返回任何有用的值,该值表示为Unit(您可以在类型:foreach中看到)。 input_file2: Unit = ()没有Unit,因此没有访问权限。也许您的意思是value,如Ram Ghadiyaram的答案所示。