这是我第一次将Scala和ApacheSpark用于项目。当我在终端中运行代码时,我正在尝试打印矩阵的内容,但到目前为止我没有尝试任何工作。
相反,我只能打印出来:
org.apache.spark.mllib.linalg.distributed.MatrixEntry;@71870da7
org.apache.spark.mllib.linalg.distributed.CoordinateMatrix@1dcca8d3
我只是使用println()
但是当我使用collect()
时,这也没有给出好的结果。
答案 0 :(得分:1)
默认的toString打印一个类的名称,后跟内存中的地址。
{
// ...
"scripts": {
"dist": "./node_modules/browserify/bin/cmd.js ./src/index.js -o ./dist/bundle.js -t [ babelify --presets [ es2015 ] ]",
// ...
},
"devDependencies": {
"babel-preset-es2015": "^6.9.0",
"babelify": "^7.3.0",
"browserify": "^13.0.1",
// ...
}
}
您想要找到一种迭代矩阵并打印每个元素的方法。
答案 1 :(得分:1)
建立在@ zero323评论的基础上(除此之外你想在那里找一个答案吗?):给定一个RDD [SomeType]你可以打电话
rdd.collect()
或
rdd.take(k)
然后,您可以使用常规的toString()方法打印出结果,这些方法取决于rdd内容的类型。因此,如果SomeType
是List[Double]
,那么
println(s"${rdd.collect().mkString(",")}")
会给你一个单行逗号分隔的结果输出。
作为@ zero323,另一个考虑因素是:"你真的想要打印出你的rdd的内容吗?"您更有可能只需要摘要 - 例如
println(s"Number of entries in RDD is ${rdd.count()}")
答案 2 :(得分:0)
像这样迭代rdd
,
rdd.foreach(println)
答案 3 :(得分:0)
scala> val rdd1 = sc.parallelize(List(1,2,3,4))。map(_ * 2)
在RDD中打印数据
阶> rdd1.collect()。的foreach(的println)
输出: 2 4 6 8