我有一个基本的spark mllib程序如下。
for /r "%USERPROFILE%\.." /d %%a in (*) do (
if exist %%~a\one\nul echo %%~fa\one
)
我已经通过intellij手动将import org.apache.spark.mllib.clustering.KMeans
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.mllib.linalg.Vectors
class Sample {
val conf = new SparkConf().setAppName("helloApp").setMaster("local")
val sc = new SparkContext(conf)
val data = sc.textFile("data/mllib/kmeans_data.txt")
val parsedData = data.map(s => Vectors.dense(s.split(' ').map(_.toDouble))).cache()
// Cluster the data into two classes using KMeans
val numClusters = 2
val numIterations = 20
val clusters = KMeans.train(parsedData, numClusters, numIterations)
// Export to PMML
println("PMML Model:\n" + clusters.toPMML)
}
,spark-core
和spark-mllib
添加到项目类路径中,并且版本都是1.5.0。
运行程序时出现以下错误?知道什么是错的吗?
错误:scalac:加载Vector时出错,缺少依赖项'错误 象征性的参考。 Vector.class中的签名是指术语类型 在包org.apache.spark.sql中,它不可用。它可能是 从当前的类路径或者上的版本完全丢失 classpath可能与编译时使用的版本不兼容 Vector.class。',需要 /home/fazlann/Downloads/spark-mllib_2.10-1.5.0.jar(组织/阿帕奇/火花/ mllib / linalg / Vector.class
答案 0 :(得分:1)
DesirePRG。我遇到了和你一样的问题。解决方案是导入一些组装spark和hadoop的jar,例如 spark-assembly-1.4.1-hadoop2.4.0.jar ,然后它就能正常工作。