Ich habe Fall Klasse wie folgt:Spark-Dataset Union setzt Klassenvariablen
case class Ais(NotImportant)
extends Serializable {
var flag = Ais.Flag.NotFlagged
var cluster = Ais.Unknown
var visited = false
override def toString(): String = {
s"$cluster,$flag,$visited"
}
}
Nach meinem Algorithmus läuft ich endend mit zwei Datasets vom Typ bis (Int,Ais)
wo Variablen in Ais
Objekte Informationen enthalten. Ich muss sie verbinden. Die wichtigsten sind für mich die Werte var cluster
und var visited
. Nach werden sie jedoch auf die Standardwerte zurückgesetzt.
labeledInner.foreach(println(_)) // This is fine
println("==========")
labeledOuter.foreach(println(_)) // This is also fine
println("==========")
labeledOuter.union(labeledInner).foreach(println(_)) // Here
// everything set to default
Ich benutze Spark 2.1 und Scala 2.11.8.
Danke, das bestätigt meinen Verdacht. Gibt es eine Möglichkeit, den veränderbaren Variablenstatus mit einem anderen Encoder, wie Kryo, zu erhalten? –