2017-09-27 1 views
0

나는 이런 식으로 RDD pyspark 변환하려고pyspark에서 람다를 사용하여 값 쌍을 만드는 방법은 무엇입니까? 전에</p> <p>:

[ 
    [('169', '5'), ('2471', '6'), ('48516', '10')], 
    [('58', '7'), ('163', '7')], 
    [('172', '5'), ('186', '4'), ('236', '6')] 
] 

후 :

[ 
    [('169', '5'), ('2471', '6')], 
    [('169', '5'),('48516', '10')], 
    [('2471', '6'), ('48516', '10')], 
    [('58', '7'), ('163', '7')], 
    [('172', '5'), ('186', '4')], 
    [('172', '5'), ('236', '6')], 
    [('186', '4'), ('236', '6')] 
] 

아이디어는 각 라인을 통해 이동하고 새로운 라인 페어를 만드는 것입니다. 나는 lambda 자습서로 해결 방법을 찾으려고 노력했지만 좋지는 않았다. 도움을 청할 수 있을까요? 다른 질문이 반복되는 경우 사과드립니다. 감사!

답변

1

나는 itertools.combinationsflatMap을 사용하십시오 :

from itertools import combinations 

rdd.flatMap(lambda xs: combinations(xs, 2)) 
+0

을 내가 필요 정확히 무엇을 그. 감사! – lovedavidsilva