我使用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


有人可以帮我吗?
谢谢 !

最佳答案

看来您同时具有以下两个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)

关于apache-spark - 在Spark 2.0上运行LDA算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41695024/

10-12 23:13