2016-12-19 2 views
0

У меня есть выход как следующийorg.apache.spark.mllib.linalg.Vector к DataFrame Скале

val output = Vectors.dense(Vectors.dense(pred.toDouble).toArray ++ predProb.toArray) 
output: org.apache.spark.mllib.linalg.Vector = [0.0,0.9279938116118619,0.07200618838813808] 

Я хочу, чтобы преобразовать его в DataFrame со следующим в столбце значения

case class Prob(Pred: Double, NoProb: Double, YesProb: Double) 

Может кто-нибудь, пожалуйста, помогите.

Благодаря

Bala

ответ

0

вал ДФ = output.map (_. ToArray) .map {случай Array (p0, p1, p2) => Проб (p0, p1, p2)}. ToDF()

+0

У вас может быть больше деталей в: http://stackoverflow.com/questions/34688258/convert-an-org-apache-spark-mllib-linalg-vector-rdd-to-a-dataframe-in- spark-usin – firas

+0

Спасибо @yahoo. Однако это то, что я получаю, если я это сделаю. scala> val df = output.map (_. ToArray) .map {case Array (p0, p1, p2) => Prob (p0, p1, p2)}. ToDF() : 44: error: value map не является членом org.apache.spark.mllib.linalg.Vector val df = output.map (_. toArray) .map {case Array (p0, p1, p2) => Prob (p0, p1, p2)}. toDF() –

+0

Фактически, вы можете преобразовать toArray без карты, просто поместите это: output.toArray.map {case Array (p0, p1, p2) => Prob (p0, p1, p2)}. toDF() – firas

Смежные вопросы