我在spark和flink中开发了一个多元线性回归和kmeans来比较它们在批处理中的性能(我用zeppelin来编程和执行,用ganglia来度量)。
我在这篇文章的回答中读到,我必须触发methodtrain的执行,所以我做了。
hovewer,在线性回归中,flink需要3分27秒(就在触发部分),而spark只需要30秒(在整个执行过程中)…所以我认为我做错了什么,因为这是不可能的。
与k-均值算法相比,flinks的速度也较慢。
这是我的密码:
//Read the data
val data: DataSet[org.apache.flink.ml.common.LabeledVector] = MLUtils.readLibSVM(benv, /.../quake_test_I.libsvm")
//Example of data
6.1 1:33.0 2:53.26 3:-161.74
5.8 1:45.0 2:51.34 3:173.44
5.9 1:17.0 2:28.62 3:142.42
5.8 1:28.0 2:52.73 3:171.99
// Create multiple linear regression learner
val mlr = MultipleLinearRegression()
.setIterations(10)
.setStepsize(0.5)
.setConvergenceThreshold(0.001)
//Train the model
val model = mlr.fit(data)
//Tigger its execution
val weights = mlr.weightsOption match {
case Some(weights) => weights.collect()
case None => throw new Exception("Could not calculate the weights.")
如何触发此模型的执行?
谢谢你的帮助!:)
暂无答案!
目前还没有任何答案,快来回答吧!