2017-05-16 11 views
2

ケースクラスのSeqを今日Spark Datasetに変換しようとすると問題が発生しました。私はそれがピン止めするのが難しいので、私はここで解決策を共有すると思った。モナドをラップする組み込みオプションを使用してスカラケースクラスをsparkデータセットに変換する問題

は、私がデータセット

case class Foo(name: String, names: Option[List[String]]) 
val myData: Seq[Foo] = Seq(Foo("A", Some(List("T","U"))), 
          Foo("B", Some(List("V","W")))) 

val myFooDataset = sparkSession.createDataset(myData) 

このエラーをアウトに変換しようと何のエンコーダが存在しないと文句を言い頂く場合クラスを持っています。これをどのように機能させることができますか?

答えて

0

この場合の答えは、埋め込みリストをSeqに変換することです。実際には、リスト(Optionでラップされていない)である列を持つだけで動作しますが、OptionでラップするとすぐにSeqでなければなりません。

case class Foo(name: String, names: Option[Seq[String]]) 
val myData: Seq[Foo] = Seq(Foo("A", Some(Seq("T","U"))), 
          Foo("B", Some(Seq("V","W")))) 

val myFooDataset = sparkSession.createDataset(myData) 
関連する問題