如何在控制台中输出RDD的内容

时间:2016-03-04 15:45:48

标签: apache-spark

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

1 个答案:

答案 0 :(得分:0)

你问了错误的问题。

您的问题不是如何获取内容 - 您已经使用RDD.takeSample。并且您也知道如何将其打印到标准输出,否则您将不会有[Lbreeze.linalg.Vector;@3bfc6a5e

之类的东西

您真正需要的是可读格式。在大多数情况下,kPoints.map(_.toString)应该这样做。如果没有,您需要手动编写一个函数来执行此操作。我想您可以尝试将Vector转换为Array[double],然后调用toString

并且:检查向量的值是没有意义的,为什么不用一些stat方法来观察?