Scala 为什么可以';我不能在我的程序中使用UpdateStateByKey吗?
我有一个变量inputVector:Scala 为什么可以';我不能在我的程序中使用UpdateStateByKey吗?,scala,apache-spark,spark-streaming,stateful,Scala,Apache Spark,Spark Streaming,Stateful,我有一个变量inputVector:DStream[(Int,BDM[Double])其中BDM是Breeze矩阵。我想对它使用UpdateStateByKey,但当我试图使用它时,我得到无法解析符号UpdateStateByKey 我是Spark的新手,但据我所知,您必须只有键值对才能使用它 我错过了什么 我的代码是: val ssc = new StreamingContext(conf, Seconds(3)) val lines = ssc.socketTextStream("local
DStream[(Int,BDM[Double])
其中BDM是Breeze矩阵
。我想对它使用UpdateStateByKey
,但当我试图使用它时,我得到无法解析符号UpdateStateByKey
我是Spark
的新手,但据我所知,您必须只有键值对才能使用它
我错过了什么
我的代码是:
val ssc = new StreamingContext(conf, Seconds(3))
val lines = ssc.socketTextStream("localhost", 9999)
ssc.checkpoint("./checkpoints/")
var inputRdd = lines.map(x => x.split(","))
var arr = inputRdd.transform(x => x.groupBy(_ (1)).mapValues(x => x
.foldLeft(Array.ofDim[Double](C, T)) { (a, b) => {
var c = a
c(b(2).toInt)(findNextEmpty(a,b(2).toInt, T)) += b(3).toDouble
c }}))
var inputVector = arr.transform(x => x.map(y=> (y._1.toInt, BDM(y._2.map(_.toArray):_*))))
var example = inputVector.updateStateByKey(somefunc)
该方法的名称是updateStateByStream
,带有小写的u
,而不是updateStateByStream
。Scala区分大小写。问题是spark streaming
库没有完全添加到项目的依赖项中。因此,我只是将spark streaming
.jar添加到依赖项中romFile->Project Structure->Modules
这是我的错,我编辑了它。我也用小写的u
尝试过,我仍然得到同样的错误。