[英]Unable to add elements to scala mutable list inside foreach loop
我正在尝试在mutable scala list
添加元素,如下所示。 我正在逐行读取数据帧中的值,提取名称为“_title”的列的值并将其添加到列表中。 但是当 for 循环完成时,列表仍然是空的。 这是代码:
import scala.collection.mutable.ListBuffer
val flatK = dfR.withColumn("UserValue", explode(col("UserValue")))
var colListA = new ListBuffer[String]()
// var colSet : List[String] = List()
for(i <- 0 until Integer.parseInt(dfR.count().toString)){
flatK.filter($"columnIndex" === i).foreach{
r=>
val columnName = r.getAs[Row]("UserValue").getAs[String]("_title")
// println(columnName)
colListA.append(columnName)
}
}
println(columnName)
实际上打印了我想放入列表中的值。 我的数据dfR
如下所示:
+--------------------------------------------------------------+-----------+
|UserValue |columnIndex|
+--------------------------------------------------------------+-----------+
|[, last_mod_date, 2009-01-14T13:40:53] |0 |
|[, object_string, SOLIDS] |0 |
|[, last_mod_date, 2009-01-13T22:58:30] |1 |
|[, object_string, TORSO] |1 |
当我做
colListA += "elements"
colListA += "adds"
我可以看到添加的元素。 但不在那个foreach
循环中。 谁能告诉我我该尝试什么? 基本上,我希望 colList 填充last_mod_date
和object_string
。
如果要从数据dataframe.select("_title").collect().map(_(0).asInstanceOf[String]).toList
列创建列表
您可以获取列的字符串列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.