2

spark/scalaの新機能です。スパークにおけるRDDの構造の変更

val First: RDD[((Short, String), (Int, Double, Int))] 

これはRDDの構造です。私は異なる構造を持つ別のRDDを持っていると私はUNIONの両方このRDDにしたいので

val First: RDD[(Short, String , Int, Double, Int)] 

:私は怒鳴るように変更され、このsturcture何かしたいです。 (構造はUNION操作で同じでなければなりません)。

私にオプションを提案してください。

+0

汗なし 'First.map {case((x、y)、(z、w))=>(x、y、z、w)} – Alec

+0

@Alecこれを試しましたが、これによりパフォーマンスが低下します。 Mapはデータを1つずつ繰り返します。 – Darshan

+0

データを反復せずに構造を変更できる解決策を提案してください – Darshan

答えて

1

ただ、このように、あなたのデータをマップします。その後、

First.map{ case ((x, y), (k, z, w)) => (x, y, k, z, w) } 

、このマップ関数を記述するために、あなたはRDDの形式を確認する必要があり、((Short, String), (Int, Double, Int))、私は(x, y), (k, z, w)として書いたものである、と希望の書式を=>の右側に書いてください。コメントを


編集:アクションが発生した場合にのみ

は地図が1

することにより、データを1つずつ反復されますようにして、そうmap()作品本当によく、変換を適用します分散された方法で。すべてのパーティションは、そのデータにマップ関数を適用します。

これは非常に高価な操作ではありませんので、それに重点を置かないでください。マップ関数は、クラスタ内の対応するリソースがあれば、データ量が少なくて済むはずです。

+0

反復処理なしでModified構造体に他の選択肢がありますか(マップはデータを1つずつ繰り返します) – Darshan

関連する問題