我有一个包含单个列的<div *ngIf="currentStatus !== 'open' || currentStatus !== 'reopen'">
实例。
我试图将此RowMatrix转换为数据帧但我不太确定如何将RowMatrix
转换为数据帧。
org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector]
我知道如果我有两个(或更多)列,我可以使用以下代码
val mat: RowMatrix = new RowMatrix(centred)
val mat_rows = mat.rows // RDD[Vector]
问题是我只有一个专栏。如果我修改上面的代码来创建单列数据帧,我会收到以下错误:
val mat_rdd = mat_rows.map(_.toArray).map{case Array(p0, p1) => (p0, p1)}
val df = sparkSession.createDataFrame(mat_rdd).toDF("f1", "f2")
答案 0 :(得分:1)
它在Spark 2.0.0中运行良好:
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.linalg.distributed.RowMatrix
val rows = spark.sparkContext.parallelize(Array(Vectors.dense(1), Vectors.dense(1)))
val mat: RowMatrix = new RowMatrix(rows)
scala> mat.rows.map(_.toArray).map{ case Array(a) => a}.toDF("f1").show()
+---+
| f1|
+---+
|1.0|
|1.0|
+---+