2017-07-20 6 views
0

私はHDFSのファイルから読み込まれた大きなレコードのコレクションを指しています。この値を 'a'と呼んでみましょう。 'a'には、SRC、DEST、ACTの3つのプロパティがすべて含まれているレコードがあります。私は 'a'のクローンを作成する必要がありますが、SRCとDESTキーの値を各レコードに入れ替えました。これをスカラーでどうやって行うのですか?私はマップ関数のさまざまな変種を試しましたが、これが正しく動作するように見えません。Scala:コレクション内の2つのキー値を入れ替えますか?

+3

言葉が良いです。あなたの質問を示すコードが優れています。 – jwvh

答えて

2

まあ、コード例なしで、私はあなたのニーズとの前提で推測していますが、このような何かは仕事ができる:あなたの質問を説明

case class Record(src: String, dest: String, act: String) 

val a = List(
    Record("srcA", "destA", "actA"), 
    Record("srcB", "destB", "actB"), 
    Record("srcC", "destC", "actC"), 
    Record("srcD", "destD", "actD"), 
    Record("srcE", "destE", "actE"), 
) 

val b = a.map(r => Record(r.dest, r.src, r.act)) 

println(a) 
// => List(Record(srcA,destA,actA), Record(srcB,destB,actB), Record(srcC,destC,actC), Record(srcD,destD,actD), Record(srcE,destE,actE)) 

println(b) 
// => List(Record(destA,srcA,actA), Record(destB,srcB,actB), Record(destC,srcC,actC), Record(destD,srcD,actD), Record(destE,srcE,actE)) 
+0

@CN私の答えがあなたを助けたなら、それを答えとして受け入れてください。それ以外の場合は、問題に関する詳細情報を提供してください。 – EmilioMg

+0

あなたがこれを投稿する前に私はそれを理解しましたが、これは私が行ったのと非常に似ています。とにかく、ありがとう :) –

関連する問題