Apache Spark Streaming K-means:我需要知道在同一数据中运行了多少次迭代?

时间:2015-10-02 14:33:01

标签: java apache-spark k-means

我是 Spark 的新手。我试图阅读代码并了解 K-means in Spark Streaming 的工作原理。我不知道怎样才能获得算法在同一数据组中执行的迭代次数。我无法找到包含此信息的Java文件。

请帮帮我吗?

谢谢

解决方案:在此文件/spark-1.5.0/mllib/src/main/scala/org/apache/spark/mllib/clustering/KMeans.scala中有一个{{1}使用名为while的变量的run方法中的语句,Spark将其写入每次运行的日志中。

2 个答案:

答案 0 :(得分:2)

正如majitux'解决方案的一小部分补充(我不允许发表评论)。如果你想知道K-Means需要的迭代次数,只需将SPARK的日志级别更改为INFO。在shell中使用:

spark.sparkContext.setLogLevel("INFO")

或者在 conf / log4j.properties 中将其设置为默认值。

在K-Means完成运行后,字符串“KMeans ++在X迭代中融合”将出现在日志中。

答案 1 :(得分:1)

初始化KMeans类时,可以指定max-iteration参数。

new KMeans()。setMaxIterations(iterations)

然后它将为每个预测使用该参数