Я анализирую файл CSV в набор данных SQL SQL с определенным форматом.Некоторые из этих объектов я хочу отобразить в другом очень простом формате.
// First Format
case class Foo(...)
// Second Format
case class Bar(..., rating: Rating)
case class Rating(value: Double) extends AnyVal
// Transformation
def asBar(f: Foo): Option[Bar]
Это преобразование прекрасно работает с Lists
.Но когда я пытаюсь сделать то же самое с Dataset
в spark, выполнение завершается неудачно из-за исключительной ситуации:
org.codehaus.commons.compiler.CompileException: файл «generate.java», строка 85, столбец 30:Преобразование присвоения невозможно из типа "double" в тип ". . *. Rating"
// this works fine
List[Foo](...).flatMap(asBar)
// this fails
Dataset[Foo](...).flatMap(asBar)
Если кому-то интересно: я создаю тип Rating
, чтобы убедиться в этомустраняет некоторые ограничения на более общий тип Double
.