Spark Scala foreach循环中的赋值

Spark Scala foreach循环中的赋值,scala,apache-spark,Scala,Apache Spark,我是scala/spark的新手,正在尝试循环一个数据帧,并在循环过程中分配结果。下面的代码可以工作,但只能将结果打印到屏幕上 traincategory.columns.foreach { x=> val test1 = traincategory.select("Id", x) import org.apache.spark.ml.feature.{OneHotEncoder, StringIndexer} //CODE TO PERFORM ONEHOT TRANSFORMAT

我是scala/spark的新手,正在尝试循环一个数据帧,并在循环过程中分配结果。下面的代码可以工作,但只能将结果打印到屏幕上

traincategory.columns.foreach { x=>

val test1 = traincategory.select("Id", x)

import org.apache.spark.ml.feature.{OneHotEncoder, StringIndexer}

//CODE TO PERFORM ONEHOT TRANSFORMATION

val encoded = encoder.transform(indexed)

encoded.show()

}
由于val是不可变的,所以我尝试将此转换的向量附加到另一个变量上,就像在R中所做的那样

//var ended = traincategory.withColumn(x,encoded(0))
我怀疑Scala有一种更惯用的处理方法


提前感谢您的帮助。

解决方案位于:

如果有人对Scala MLIB有类似的问题,下面是一个很好的示例代码:


您看过Spark文档了吗?