Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 为什么可以';我不能在我的程序中使用UpdateStateByKey吗?_Scala_Apache Spark_Spark Streaming_Stateful - Fatal编程技术网

Scala 为什么可以';我不能在我的程序中使用UpdateStateByKey吗?

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

我有一个变量inputVector
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添加到依赖项中rom
File->Project Structure->Modules

这是我的错,我编辑了它。我也用小写的
u
尝试过,我仍然得到同样的错误。