Eigentlich MatrixUDT
seit 1.4 ein Teil des o.a.s.mllib.linalg
gewesen und erst vor kurzem auf o.a.s.ml.linalg
kopiert wurde. Da es nie öffentlich war, kann man nicht einmal ein korrektes Schema deklarieren, so dass ich ernsthaft bezweifle, dass es für allgemeine Anwendungen gedacht ist. Ganz zu schweigen von der Tatsache, dass API in der Praxis wohl begrenzt ist.
Dennoch grundlegende Umwandlungen gut funktionieren so alles, was Sie brauchen, ist ein RDD oder Seq
von Produkttypen ist (wieder einmal ist es nicht möglich Schema zu definieren), und Sie sind gut zu gehen:
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]