[英]Unable to append RDD to a list in scala
您好以下我无法将值添加到我在Scala中的列表,以下是我的代码:
var cumFrequency =List[Any]
updatedRdd.foreachRDD( rdd => {
for( item <- rdd.collect()) {
val newRDD = (item._1,item._2.toString.toDouble/newc)
cumFrequency +: newRDD
}
})
我在cumFrequency +: newRDD
遇到错误cumFrequency +: newRDD
无法解析符号的cumFrequency +: newRDD
。 我不确定为什么要在列表cumFrequency
上添加newRDD
时给出该错误。 我写的语法错误吗?
下面是更正的行
cumFrequency :+ newRDD
使用List.empty[Any]
或List[Any]()
初始化cumFrequency
var cumFrequency = List[Any]()
要么
var cumFrequency =List.empty[Any]
为了追加到列表,请使用:::
或++
或:+
如果是列表,请尝试此
cumFrequency ::: List(newRDD)
要么
cumFerequency ++列表(newRDD)
或者如果您不关心订单,那么
newRDD :: cumFrequency
为了在您的程序上下文中使此功能生效,在此程序中,值以命令式样式添加到列表中,您需要:
cumFrequency = cumFrequency ++ List(newRDD)
要么
cumFrequency = newRDD :: cumFrequency
并且您还应该在声明之后添加方括号:
var cumFrequency =List[Any]()
大多数Scala程序员都不推荐这种样式。 更好的方法是:
val cumFrequency = updatedRdd.flatMap( rdd => {
for( item <- rdd) yield (item._1,item._2.toString.toDouble/2)
})
但这取决于我不熟悉的RDD数据类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.