Как мне получить As [Location] ("location") из строки данных? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть класс Location(lat, lon), я создал фрейм данных df = Seq(Location(1,2), Location(3,4)).toDF. Когда я пытаюсь сделать это:

df.map(row => 
        row.getAs[Location]("location")
      )

, происходит сбой, потому что нет кодера для Location. Но как мне преобразовать его в Dataset из Location?

Я пытался:

df.map(row => 
        val seq = row.getAs[Seq[Int]]("location")
        Location(seq(0), seq(1))
      )

Но он тоже не работает.

Я действительно смущен. Как мне решить эту проблему?

1 Ответ

0 голосов
/ 05 февраля 2020

если у вас есть case class Location(lat: Int, lon: Int), за которым следует val df = Seq(Location(1,2), Location(3,4)).toDF, вы можете преобразовать этот фрейм данных df в набор данных или изменить эту строку на val ds = Seq(Location(1,2), Location(3,4)).toDS, где ds - это ds: org.apache.spark.sql.Dataset[Location] = [lat: int, lon: int], как вы и сказали один из комментариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...