Github user srowen commented on a diff in the pull request:
https://github.com/apache/spark/pull/20600#discussion_r171625208
--- Diff:
mllib/src/main/scala/org/apache/spark/mllib/clustering/BisectingKMeansModel.scala
---
@@ -136,8 +144,28 @@ object BisectingKMeansModel extends
Loader[BisectingKMeansModel] {
r.getDouble(4), r.getDouble(5), r.getSeq[Int](6))
}
+ private def getNodes(node: ClusteringTreeNode):
Array[ClusteringTreeNode] = {
+ if (node.children.isEmpty) {
+ Array(node)
+ } else {
+ node.children.flatMap(getNodes) ++ Array(node)
+ }
+ }
+
+ private def buildTree(rootId: Int, nodes: Map[Int, Data]):
ClusteringTreeNode = {
+ val root = nodes(rootId)
+ if (root.children.isEmpty) {
+ new ClusteringTreeNode(root.index, root.size, new
VectorWithNorm(root.center, root.norm),
+ root.cost, root.height, new Array[ClusteringTreeNode](0))
+ } else {
+ val children = root.children.map(c => buildTree(c, nodes))
+ new ClusteringTreeNode(root.index, root.size, new
VectorWithNorm(root.center, root.norm),
+ root.cost, root.height, children.toArray)
+ }
+ }
+
private[clustering] object SaveLoadV1_0 {
- private val thisFormatVersion = "1.0"
+ private[clustering] val thisFormatVersion = "1.0"
--- End diff --
Did this need to be more visible?
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]