Spark Scala: добавление объекта класса Case в датафрейм - PullRequest
0 голосов
/ 06 декабря 2018

Теперь у меня есть простой пустой фрейм данных, созданный как

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)

Как я могу преобразовать объект во что-то, что может быть добавлено к кадру данных?

1 Ответ

0 голосов
/ 06 декабря 2018

union ожидает Dataset[_] в качестве аргумента.Вам нужно

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