2017-03-06 3 views
0

私はPysparkを初めて使用しています。私はSpark 2.0.2を使用しています。私は例えばPyspark RDDから複数RDDへのRDD

RDD_1001_01、U-キー列で利用可能なユニークな値から新しいRDDを作成する必要が

U-Key || V1 || V2 || V3 || 
----------------------------------- 

1001_01 || 12 || 41 || 21 || 

1001_01 || 36 || 43 || 63 || 

1001_01 || 60 || 45 || 10 || 

1002_03 || 84 || 57 || 14 || 

1002_03 || 18 || 49 || 18 || 

1004_01 || 12 || 41 || 22 || 

1004_01 || 16 || 43 || 26 || 

U-Key || V1 || V2 || V3 || 
----------------------------------- 
1001_01 || 12 || 41 || 21 || 

1001_01 || 36 || 43 || 63 || 

1001_01 || 60 || 45 || 10 || 

私はRDDは、次のような構造でTest_RDDと呼ばれています

RDD_1002_03として:

U-Key || V1 || V2 || V3 || 
----------------------------------- 

1002_03 || 84 || 57 || 14 || 

1002_03 || 18 || 49 || 18 || 

としてRDD_1004_01:3 RDDの(RDD_1001_01、RDD_1002_03、RDD_1004_01)に1 RDD(Test_RDD)から

U-Key || V1 || V2 || V3 || 
----------------------------------- 

1004_01 || 12 || 41 || 22 || 

1004_01 || 16 || 43 || 26 || 

、 新しいRDDの名前がRDD_(Test_RDDから一意の列名)のようにする必要があります。 Pysparkでこのシナリオに使用できる関数はありますか?

答えて

1

@ user6910411で既に述べたように、単一の関数呼び出しでこれを行うことはできません。

あなたの答えにもかかわらず、ポストは実際にあなたの問題についての洞察を大量に提供しません:答えの最初の文は、すでに*単一の変換から複数のRDDSを生成することはできません

を述べています。 RDDを分割する場合は、分割条件ごとにフィルタを適用する必要があります。

理論的には、個別のインデックスごとに分割することで、理論的にこれを行うことができます。大規模なRDDの場合は実行しないでください。 代わりに、簡単なgroupByKeyは、同じRDD内で、あなたの要求に似た何かを達成するためのトリックを行うことができます。それ以上の処理に応じて、シャッフル操作の量が多すぎるため、should avoid groupByKey for reduce operationsということに言及する必要があります。

関連する問題