Spark Scala:将 Case class 对象添加到数据框

Spark Scala : Add Case class object to dataframe

我创建了一个简单的空数据框

import org.apache.spark.sql.SparkSession

lazy val sess = SparkSession.builder.appName("myapp").enableHiveSupport().getOrCreate()
case class MyClass (id:String, name:String)
val resultDf = sess.emptyDataset[MyClass]

现在,我只想创建一个新对象,并将其附加到数据框。我怎么做?我试过很多东西都失败了

val x = MyClass("123", "zxc")
resultDf.union(x)

<console>:39: error: type mismatch;
 found   : ValidSignals
 required: org.apache.spark.sql.Dataset[ValidSignals]
       resultDf.union(x)

如何将对象转换为可以附加到数据框的对象?

union 需要一个 Dataset[_] 作为参数。你需要

val emptyDS = sess.emptyDataset[MyClass] 
val resultDS = emptyDS.union(Seq(MyClass("123","abc")).toDS())
resultDS.collect() // Array(MyClass(123,abc))