私はspark SQLデータフレームに一連の医用画像をロードしようとしています。ここでは、各画像がデータフレームの行列の列に読み込まれます。 Sparkがこの種のケースをサポートするMatrixUDTを最近追加したのを見るが、データフレームで使用するためのサンプルが見つからない。SparkSQL DataframeのMatrixUDTを列として使用する
誰もがこれで私を助けることができます。
本当にありがとうございます。
おかげ
カルティクVadla
私はspark SQLデータフレームに一連の医用画像をロードしようとしています。ここでは、各画像がデータフレームの行列の列に読み込まれます。 Sparkがこの種のケースをサポートするMatrixUDTを最近追加したのを見るが、データフレームで使用するためのサンプルが見つからない。SparkSQL DataframeのMatrixUDTを列として使用する
誰もがこれで私を助けることができます。
本当にありがとうございます。
おかげ
カルティクVadla
は実際にMatrixUDT
は1.4以降o.a.s.mllib.linalg
の一部となっており、ごく最近o.a.s.ml.linalg
にコピーされています。公にされていないので、正しいスキーマを宣言することさえできないので、私はそれが一般的なアプリケーションのために意図されていることを真剣に疑っています。もちろん、APIは実際には有用であると制限されていることは言うまでもありません。
にもかかわらず、基本的な変換がうまく動作するので、あなたが必要とするすべての製品タイプのRDDまたはSeq
である(もう一度スキーマを定義することはできません)、あなたが行ってもいいです:
import org.apache.spark.ml.linalg.Matrices
Seq((1, Matrices.dense(2, 2, Array(1, 2, 3, 4)))).toDF
// org.apache.spark.sql.DataFrame = [_1: int, _2: matrix]
Seq((1, Matrices.dense(2, 2, Array(1, 2, 3, 4)))).toDS
// org.apache.spark.sql.Dataset[(Int, org.apache.spark.ml.linalg.Matrix)]
// = [_1: int, _2: matrix]