我是 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将其写入每次运行的日志中。
答案 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)
然后它将为每个预测使用该参数