在Spark 2.0上运行LDA算法

时间:2017-01-17 10:44:51

标签: apache-spark machine-learning apache-spark-mllib lda

我使用spark 2.0.0,当我尝试执行时,我想训练LDA模型到Tweets数据集

val ldaModel = new LDA().setK(3).run(corpus)

我收到此错误

error: reference to LDA is ambiguous;
it is imported twice in the same scope by import org.apache.spark.ml.clustering.LDA and import org.apache.spark.mllib.clustering.LDA
有人可以帮帮我吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

您似乎拥有以下两个import语句:

import org.apache.spark.ml.clustering.LDA
import org.apache.spark.mllib.clustering.LDA

您需要删除其中一个。

如果您使用Spark ML(基于数据框的API),正确的语法将是:

import org.apache.spark.ml.clustering.LDA

/*feature extraction step*/

val lda = new LDA().setK(3)
val model = lda.fit(corpus)

如果您使用的是基于RDD的API,则必须编写:

import org.apache.spark.mllib.clustering.LDA

/*feature extraction step*/

val lda = new LDA().setK(3)
val model = lda.run(corpus)