Spark DataSet
работает так же, как обычная коллекция Scala. У него есть операция toDF()
, чтобы создать из него DataFrame
. Теперь вам просто нужно извлечь из него нужные данные, используя различные преобразования.
flatMap
это в DataSet
из File
filter
каждые File
для непустых a
map
каждый оставшийся File
до a
- вызов
toDF()
для создания DataFrame
В коде это будет:
val ds: DataSet[Session] = ...
ds.flatMap(_.bf)
.filter(_.a.isDefined)
.map(_.a.get)
.toDF()
В Scala вы также можете объединить filter
и map
в collect
, что приведет к следующему коду:
ds.flatMap(_.bf).collect({ case File(_, Some(a), _, _) => a }).toDF()