私は、オプション[DataFrame]を返すメソッドcreateDataFrameを持っています。私は、DataFrameを「取得」し、後のコードで使用したいと考えています。私は私が修正することはできません型の不一致を取得しています:Spark/ScalaのOptionを正しく処理する方法は?
val df2: DataFrame = createDataFrame("filename.txt") match {
case Some(df) => { //proceed with pipeline
df.filter($"activityLabel" > 0)
case None => println("could not create dataframe")
}
val Array(trainData, testData) = df2.randomSplit(Array(0.5,0.5),seed = 12345)
私はタイプであることがDF2必要があります。DATAFRAMEそうでない場合は、後のコードがデータフレームなどとしてDF2を認識しませんval Array(trainData, testData) = df2.randomSplit(Array(0.5,0.5),seed = 12345)
ただし、case None
ステートメントはDataFrameタイプではないため、Unitを返します。コンパイルされません。しかし、もし私がdf2の型を宣言しなければ、後のコードはDataFrameとして認識されないのでコンパイルされません。誰かが助けになると思われる修正を提案できれば - これでしばらくの間、サークルの中を回ってきました。ありがとう
おかげで、あなたは表示することができます。私は何を意味しますか?いくつかのコード例を教えてください。ありがとう! – LucieCBurgess
私は小さなサンプルを追加しましたが、現在私はverifに時間がありませんy it。しかし、私が何を意味したのかは明らかです。 – Chobeat
オプション[A]のmapはオプション[A]を再び与えるので、最初の2行はコンパイルされません –