【发布时间】:2016-03-11 21:36:00
【问题描述】:
我正在使用两个代表文档和标签的文本文件构建一个训练集。
Documents.txt
hello world
hello mars
Labels.txt
0
1
我已阅读这些文件并将我的文档数据转换为tf-idf 加权term-document matrix,表示为RDD[Vector]。我还阅读并为我的标签创建了RDD[Vector]:
val docs: RDD[Seq[String]] = sc.textFile("Documents.txt").map(_.split(" ").toSeq)
val labs: RDD[Vector] = sc.textFile("Labels.txt")
.map(s => Vectors.dense(s.split(',').map(_.toDouble)))
val hashingTF = new HashingTF()
val tf: RDD[Vector] = hashingTF.transform(docs)
tf.cache()
val idf = new IDF(minDocFreq = 3).fit(tf)
val tfidf: RDD[Vector] = idf.transform(tf)
我想使用tfidf 和labs 来创建RDD[LabeledPoint],但我不确定如何应用具有两个不同RDDs 的映射。这是否可能/有效,还是我需要重新考虑我的方法?
【问题讨论】:
-
你应该
joinRDDs。 -
@AlbertoBonsanto 我正在考虑这种方法,但是如果
RDD没有keys到joinby 我该怎么做?
标签: scala apache-spark classification apache-spark-mllib