2015-12-03 3 views
0

Я попытался выполнить мой код scala в службе Bluemix Spark, как только я смогу запустить его и получить правильный результат от своей локальной виртуальной машины. Когда я запустил его в Bluemix Spark, я не могу получить ответа в блокноте.Я не получаю никакого результата от ноутбука в Bluemix Spark

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). Странно. Как я могу получить результат?

ответ

2

Я протестировал его на Bluemix в ноутбуке Scala.

val input = sc.textFile("swift://notebooks.spark/test.csv") 
input.take(1) /** shows the first line */ 
input.foreach(println) /** nothing is displayed */ 

Если вы хотите отобразить содержимое RDD, то вы можете использовать следующий код.

input.take(5).foreach(println) /** shows the first 5 lines */ 
input.collect().foreach(println) /** shows all lines */ 

Я не знаю, как ваш локальный VM настроен, но я думаю, вы должны различать между выполнением кода локального или на кластере.

Имейте взгляд на этот ответ для получения дополнительной информации: How to print the contents of RDD?

+0

Привет Sven, спасибо за Ваш ответ. Я могу получить правильный результат выполнения 'println (pca.toString)'. –

Смежные вопросы