2017-03-09 7 views
-1

私はスカラーが初めてです。サンプルデータ:sparkで地図のレコードの現在値と次の値を比較します

1,"jack",34.5 
2,"jackk",14.5 
3,"jacky",24.5 
4,"jack",64.5 
And many more. 

最初のレコードの各フィールドを他のすべてのフィールドと比較し、次に2番目を他のものと比較したいと思います。 (Syntaxsを考慮しないでください) 私はコードの下に書かれている:

val data = sc.parallalize(Seq((1,"jack",34.5), 
     (2,"jackk",14.5), 
     (3,"jacky",24.5), 
     (4,"jack",64.5)) 

    val res = data.map{f => 
      val rr = f._1.equals(f._1) //here same field compare with each other But I want to compare current record with all next records. 
      Row(rr) 
     } 

例:私は、コードをクラスタ上で実行する必要がありますしたいので、私は.mapを使用しています

"jack" with "jackk" 
"jack" with "jacky" 
"jack" with "jack" 
"jackk" with "jacky" 
"jackk" with "jack" 
"jacky" with "jack" 

お願いします。 ありがとうございました。

data.cartesian(data).map(pair => compare(pair._1, pair._2)) 

が、 'デカルト' 操作は、N×N個のスペースを取ることに注意してください:

+0

パターンマッチングを検討できますか? –

+0

パターンマッチングは考慮しないでください。 –

答えて

0

はこのようにしてみてください。

関連する問題