Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ApacheSpark中使用Scala-MLLib转换LabeledPoint中向量的RDD_Scala_Apache Spark_Label_Apache Spark Mllib - Fatal编程技术网

在ApacheSpark中使用Scala-MLLib转换LabeledPoint中向量的RDD

在ApacheSpark中使用Scala-MLLib转换LabeledPoint中向量的RDD,scala,apache-spark,label,apache-spark-mllib,Scala,Apache Spark,Label,Apache Spark Mllib,我正在使用ApacheSpark和Scala的MLlib。我需要转换一组向量 import org.apache.spark.mllib.linalg.{Vector, Vectors} import org.apache.spark.mllib.regression.LabeledPoint 在标签点中,以应用MLLib的算法 每个向量由0.0(假)或1.0(真)的双值组成。 所有向量都保存在RDD中,因此最终RDD的类型为 val data_tmp: org.apa

我正在使用ApacheSpark和Scala的MLlib。我需要转换一组向量

import org.apache.spark.mllib.linalg.{Vector, Vectors}    
import org.apache.spark.mllib.regression.LabeledPoint    
在标签点中,以应用MLLib的算法
每个向量由0.0(假)或1.0(真)的双值组成。 所有向量都保存在RDD中,因此最终RDD的类型为

    val data_tmp: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector]      
因此,在RDD中,有使用

 def createArray(values: List[String]) : Vector =
    {                
        var arr : Array[Double] = new Array[Double](tags_table.size)
        tags_table.foreach(x => arr(x._2) =  if (values.contains(x._1)) 1.0 else 0.0 )
        val dv: Vector = Vectors.dense(arr)
        return dv

        }
    /*each element of result is a List[String]*/
    val data_tmp=result.map(x=> createArray(x._2)) 
    val data: RowMatrix = new RowMatrix(data_tmp)        
我如何从这个RDD(data_tmp)或行矩阵(data)创建一个使用MLLib算法的标签点集? 例如,我需要应用SVMs线性alghoritms show

我找到了解决方案:

    def createArray(values: List[String]) : Vector =
    {                
          var arr : Array[Double] = new Array[Double](tags_table.size)
          tags_table.foreach(x => arr(x._2) =  if (values.contains(x._1)) 1.0 else 0.0 )
          val dv: Vector = Vectors.dense(arr)
          return dv

    }
    val data_tmp=result.map(x=> createArray(x._2))       
    val parsedData = data_tmp.map { line => LabeledPoint(1.0,line) }