2017-10-04 2 views
1

하나의 목록으로 결합하고자하는 튜플 목록이 있습니다. lambda와 list comprehension을 사용하여 데이터를 처리 할 수 ​​있었는데 reduceByKey를 사용할 수 있지만 목록을 병합하는 방법을 모를 수 있습니다. 그래서 형식 ...pySpark RDD에서 목록의 병합 목록

[[(0, 14), (0, 24)], [(1, 19), (1, 50)], ...] 

그리고 나는이 방법 싶습니다 .... 내가해야 곳으로 저를 얻었다

[(0, 14), (0, 24), (1, 19), (1, 50), ...] 

코드 ...

test = test.map(lambda x: (x[1], [e * local[x[1]] for e in x[0]])) 
test = test.map(lambda x: [(x[0], y) for y in x[1]]) 

하지만 힌트를 제공 @mrsrinivas에

+1

수동으로 폭발시키는 대신 'flatten'을 사용하십시오. – mrsrinivas

+0

흠. 좋아, 나는 그것에 대해 생각해 보았다. 그러나 어떤 이유로 그것이 그것이 갈 길이라고 생각하지 않았다. 나는 모양을 가질 것이다 – cpd1

+0

당신은'test.flatMap (identity)'을 할 수있다. – mrsrinivas

답변

2

가 수행 할 수있는,

test = test.flatMap(identity) 

또는

test = test.flatMap(lambda list: list) 
+0

이것을 확인해 보라. (Scala와 Spark 링크) (https://stackoverflow.com/q/28233405/1592191) – mrsrinivas

0

감사 목록을 병합 할 것을 거기에서 확실하지 ...

테스트 = test.flatMap (람다 XS [(XS의 X [0] X [1])에 대한 X])