我正在学习Spark,但是在向量方面遇到了问题。
导入org.apache.spark.mllib.linalg.{Vectors, Vector}。
我的程序输入是一个包含RDD(Vector)输出的文本文件: dataset.txt:
英译中:
我出现了错误,因为它将[0.510736518683609视为数字。有没有直接加载存储在文本文件中的向量的方式,而不必执行第二行?我如何在map阶段删除“ [”?我在Spark中真的很新,请原谅如果这是一个非常明显的问题。
我的程序输入是一个包含RDD(Vector)输出的文本文件: dataset.txt:
[-0.5069793074881704,-2.368342680619545,-3.401324690974588]
[-0.7346396928543871,-2.3407983487917448,-2.793949129209909]
[-0.9174226561793709,-0.8027635530022152,-1.701699021443242]
[0.510736518683609,-2.7304268743276174,-2.418865539558031]
英译中:
所以,我尝试做的是:
val rdd = sc.textFile("/workingdirectory/dataset")
val data = rdd.map(s => Vectors.dense(s.split(',').map(_.toDouble)))
我出现了错误,因为它将[0.510736518683609视为数字。有没有直接加载存储在文本文件中的向量的方式,而不必执行第二行?我如何在map阶段删除“ [”?我在Spark中真的很新,请原谅如果这是一个非常明显的问题。