繁体   English   中英

无法将RDD附加到Scala中的列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM