2016-11-16 3 views
-1

で変数を宣言する()、私はこのように関数を渡す必要があった。どのメソッドreduceByKeyでScalaのラムダ式

func:((String,Int),(String,Int))=>(String,Int) 

と私のコードは

reduceByKey(((s1:String,i1:Int),(s2:String,i2:Int))=>(s1+s2,i1+i2)) 

しかし、私のIDEショーです奇妙なエラー。私のコードに何か問題はありますか?

+0

'reduceByKey'ラムダのメソッドシグネチャは、減らすコレクションに完全に依存します。あなたのコレクションはどのように見えますか? '(KeyType、(String、Int))'の集合でなければなりません。 –

+1

また、これはラムダ宣言でタプルをアンパックしようとしているようです。パターンマッチングを使用しない限り、パラメータは –

+1

"my IDE show strange error"の代わりに '(t1 :(String、Int)、t2:(String、Int))'でなければなりません。 ...とエラーは? –

答えて

1

はどのように

reduceByKey({case((s1:String,i1:Int),(s2:String,i2:Int))=>(s1+s2,i1+i2)}) 

はあなたのIDEに見えますか?

+0

ありがとう!私のために働く! –