Мне нужно вставить и обновить значение из другой таблицы с ее внешним ключом (id) в форме

TL; DR В настоящее время нет хорошего решения, и, учитывая реализацию Spark SQL / Dataset, маловероятно, что в обозримом будущем будет один.

Вы можете использовать общий kryo или java encoder

val occupation: Seq[Occupation] = Seq(SoftwareEngineer, Wizard(1), Other("foo"))
spark.createDataset(occupation)(org.apache.spark.sql.Encoders.kryo[Occupation])

, но вряд ли применим на практике.

API UDT предоставляет другой возможный подход, как сейчас (Spark 1.6, 2.0, 2.1-SNAPSHOT) он является частным и требует довольно большого шаблона кода (вы можете проверить o.a.s.ml.linalg.VectorUDT, чтобы увидеть пример реализации).

0
задан Pravesh 25 March 2019 в 11:49
поделиться