val sparkConf = new SparkConf().setAppName("SparkKMeans")
val sc = new SparkContext(sparkConf)
val lines = sc.textFile(args(0))
val data = lines.map(parseVector _).cache()
val K = args(1).toInt
val convergeDist = args(2).toDouble
val kPoints = data.takeSample(withReplacement = false, K, 42).toArray
例如,如何输出" lines"的内容?或者"数据"?这是我得到的结果(kPoints):[Lbreeze.linalg.Vector; @ 3bfc6a5e
答案 0 :(得分:0)
你问了错误的问题。
您的问题不是如何获取内容 - 您已经使用RDD.takeSample
。并且您也知道如何将其打印到标准输出,否则您将不会有[Lbreeze.linalg.Vector;@3bfc6a5e
您真正需要的是可读格式。在大多数情况下,kPoints.map(_.toString)
应该这样做。如果没有,您需要手动编写一个函数来执行此操作。我想您可以尝试将Vector
转换为Array[double]
,然后调用toString
并且:检查向量的值是没有意义的,为什么不用一些stat方法来观察?