1
キャストを避ける方法はAny
〜String
ですが、パターンマッチングを使用します。スカラはパターンマッチングで文字列を指定します
直接鋳造は、ソートの回避策df.select('column).first.toSeq.head.asInstanceOf[String]
ですが、私は
val collectedFromSpark: Any = "someString"
val realString:String = collectedFromSpark match{
case s:String => _
case _ => throw new Exception("expected something else")
}
のようなマッチングScalaのネイティブパターンを使用することを好むだろう しかし、realString:String
だけAny
なくString
を受けスパークlike df.select('column).first.toSeq.head
からのデータフレームを収集しました。
このキャストはどのようにして正式な方法で作成できますか?
あなたのケースを 'case s:String => s'に変更しますか? – marstran
はい。それが解決策です。 –
注 - 'case s:String 'を使うことは、実行時、つまりコンパイル時ではないため、Scalaでのコード臭です。私は[Parametricity](https://www.youtube.com/watch?v=BtEEZa_Q8Vw)でこの話をお勧めします。 –