2017-03-06 7 views
0

저는 Pyspark를 처음 사용하기 때문에 Spark 2.0.2를 사용하고 있습니다.Pyspark 단일 RDD에서 복수 RDD로 RDD에서 키

나는 RDD는 다음과 같은 구조로 Test_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-키 열을 볼 수 있습니다 고유 한 값에서 새로운 RDD를 만들 필요가

RDD_1001_01 등 :

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

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

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

RDD_1002_03 다음과 같이 :

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

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

1002_03 || 18 || 49 || 18 || 
RDD의 (RDD_1001_01, RDD_1002_03, RDD_1004_01가), 새로운 RDD의 이름이 RDD_ (Test_RDD에서 고유 열 이름)처럼해야

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

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

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

1 RDD (Test_RDD)에서 3 :로210

RDD_1004_01. Pyspark에서이 시나리오에 사용할 수있는 기능이 있습니까?

답변

1

@ user6910411에서 이미 언급했듯이 단일 함수 호출로이 작업을 수행 할 수 없습니다.

당신의 대답에도 불구하고, 이후 실제로 문제에 대한 통찰력의 상당한 양을 제공한다 : 답의 첫 번째 문장은 이미 하나의 변환에서 여러 RDDs를 얻을 수 없습니다

을 말한다 *. RDD를 분할하려면 각 분할 조건에 대해 필터를 적용해야합니다.

이론적으로는 각각의 개별 인덱스를 분할하여 이론적으로 수행 할 수 있습니다. 큰 RDD의 경우 수행 할 작업이 아닙니다. 대신 간단한 groupByKey은 요청과 유사하지만 동일한 RDD 내에서 달성하기 위해이 트릭을 수행 할 수 있습니다. 추가 프로세싱에 따라, 셔플 작업이 너무 많아서 should avoid groupByKey for reduce operations이라고 언급해야합니다.