2013-05-06 80 views
1

我有以下的spark代碼片段。斯卡拉未指定類型

但得到以下錯誤:

其中發生在這裏:

 val index:Int= col1(i) ; tokened +=splitted(index) + " " ; } } 
        ^

我不能工作了它從它好像我指定所有屬性的步驟。我還需要返回字符串這樣的方法是string =>字符串(目前它的字符串 - >單元)這是我第一次在斯卡拉曾經編碼所以道歉,如果這是一個愚蠢的問題

line => { var col1:Array[Int] = Array(1,2) ; var tokened:String = "" ; 
    var splitted:Array[String]=line.split(" ") ; 
    for (i<- 0 to col1.length) { 
     val index:Int= col1(i); 
     tokened +=splitted(index) + " " ; 
    } 
} 
+1

給定的行數是相當無用的。請在註明錯誤發生位置的代碼中添加註釋。 – 2013-05-06 11:53:59

回答

1

我想這是你所需要的:

(line: String) => { /* Previously missing type annotation */ 
    var col1:Array[Int] = Array(1,2) 
    var tokened:String = "" 
    var splitted:Array[String]=line.split(" ") 

    for (i<- 0 to col1.length) { 
    val index:Int= col1(i) 
    tokened += splitted(index) + " " 
    } 

    tokened /* Return value */ 
} 

爲了使函數類型明確的,你可以存儲的匿名函數的函數類型的變量:

val f: (String => String) = line => { ... }