2016-05-01 9 views
0

入力にスカラ座でのペアをマージ:は、アレイ

出力期待
dupName = (ERIC,KAREN) 
(ERIC,JASON) 
(ERIC,ANTHONY) 

(ERIC,KAREN,JASONC,ANTHONY) 

私は常にエラーを取得しdupName.reduce(_ + _._2)を使用します。

[error]found : String 
[error] required: (String, String) 

答えて

0

Aは減らすが集約されますAのすべての値はAという単一の値になります。またはあなたの場合は、複数の(String, String)を1つの(String, String)に集約してください。

val arr = List(("ERIC", "JASON"), ("ERIC", "ANTHONY"), ("ERIC", "KAREN")) 
val newArr = arr.flatMap(x => List(x._1, x._2)).distinct 
// newArr is now List(ERIC, JASON, ANTHONY, KAREN) 

これだけです:あなたはそうは次のようにあなたは、マップする必要がしようと何をしようとしてやってみたい場合は

(concatenatedPair : (String, String), currentPair : (String, String) => (String, String)) 

:または関数の形で、これは機能を削減されますたとえば、これを行うより効率的な方法があります(例:文字列をSetに入れます)

+0

ありがとうございます。私はArrayとListで混乱していると思う。 –

+0

私はRDDには本当に親切ではありません。 –

+0

これはRDDではありません。** R ** esilient ** D ** istributed ** D ** ataset)、RDDはapache sparkです。これは普通の古いflatMapです。 – Assaf