2016-09-27 139 views
2

我是新來scala..I要的是有可能解讀爲INT RDD而不是字符串知道與火花斯卡拉處理大數據集時RDD轉換字符串RDD爲Int RDD

我嘗試以下:

val intArr = sc 
       .textFile("Downloads/data/train.csv") 
       .map(line=>line.split(",")) 
       .map(_.toInt) 

但我得到的錯誤:

error: value toInt is not a member of Array[String]

我需要轉換爲INT RDD因爲下了線我需要做下面的

val vectors = intArr.map(p => Vectors.dense(p)) 

需要類型爲整數

任何形式的幫助是真正appreciated..thanks提前

回答

2

據我瞭解,一個行應該創建一個矢量,所以它應該是這樣:

val result = sc 
      .textFile("Downloads/data/train.csv") 
      .map(line => line.split(",")) 
      .map(numbers => Vectors.dense(numbers.map(_.toInt))) 

numbers.map(_.toInt)將陣列爲int的每個元素映射,所以結果類型將是Array[Int]

+0

由於一個LO牛逼!工作.. – sivagama

+0

@sivagama請接受這是正確的答案。 – asgs

相關問題