2016-08-08 27 views
0

Ich versuche, medizinische Bilder in Spark SQL-Datenframe zu laden. Hier wird jedes Bild in die Matrixspalte des Datenrahmens geladen. Ich sehe Funken kürzlich MatrixUD hinzugefügt, um diese Art von Fällen zu unterstützen, aber ich finde kein Beispiel für die Verwendung in Dataframe.Verwenden von MatrixUDT als Spalte in SparkSQL Datareframe

https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/ml/linalg/MatrixUDT.scala

Kann mir jemand dabei helfen.

Wirklich zu schätzen Ihre Hilfe.

Dank

Karthik Vadla

Antwort

0

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]