I don't get any result from notebook in Bluemix Spark
一旦我可以运行它并从本地虚拟机获得正确的结果,我便试图在Bluemix Spark服务中执行我的Scala代码。当我在Bluemix Spark中运行它时,我在笔记本中无法获得任何响应。
1 2 3 4 5 6 7 8 9 10 11 12 | import org.apache.spark.mllib.linalg.{Vector, Vectors} import org.apache.spark.mllib.linalg.distributed.RowMatrix import org.apache.spark.mllib.linalg.Matrix val input = sc.textFile("swift://notebooks.spark/pca.csv") val header = input.first() val inputData = input.filter(x => x != header).map(line=>line.split(',')) val inputVector = input.map{d=> Vectors.dense( d(1).toDouble, d(2).toDouble, d(3).toDouble, d(4).toDouble, d(5).toDouble, d(6).toDouble, d(7).toDouble, d(8).toDouble, d(9).toDouble, d(10).toDouble, d(11).toDouble)} val rowMatrix = new RowMatrix(inputVector) val pca: Matrix = rowMatrix.computePrincipalComponents(5) |
当我执行intput.take(2)时,我可以很好地得到结果,但是执行input.foreach(println)却没有结果。真奇怪。如何获得结果?
我已经在Scala笔记本中的Bluemix上对其进行了测试。
1 2 3 | val input = sc.textFile("swift://notebooks.spark/test.csv") input.take(1) /** shows the first line */ input.foreach(println) /** nothing is displayed */ |
如果要显示RDD的内容,则可以使用以下代码。
1 2 | input.take(5).foreach(println) /** shows the first 5 lines */ input.collect().foreach(println) /** shows all lines */ |
我不知道如何设置本地VM,但是我认为您必须区分在本地运行代码还是在群集上运行代码。
请查看此答案以获取更多信息:如何打印RDD的内容?