느낌입니다 :
나는 가정, 항목은 문자열이어야한다 당신의 중첩 된 목록의 3 & 5 것을 ... RDD의
창조 :
ls = [[1,101,"001",100,"product1"],
[2,102,"001",105,"product2"],
[3,103,"002",101,"product3"]]
rdd1 = sc.parallelize(ls)
이 감당할 것 rdd1
등 :
[[1, 101, '001', 100, 'product1'],
[2, 102, '001', 105, 'product2'],
[3, 103, '002', 101, 'product3']]
매핑 :
# discard items 1 & 2; set item 3 as key
rdd2 = rdd1.map(lambda row: (row[2], [row[4], row[3]]))
rdd2.collect()
> [('001', ['product1', 100]),
> ('001', ['product2', 105]),
> ('002', ['product3', 101])]
# group by key and map values to a list
rdd3 = rdd2.groupByKey().mapValues(list)
rdd3.collect()
> [('001', [['product1', 100], ['product2', 105]]),
> ('002', [['product3', 101]])]
..
그것은 당신이에 관심이 상당히 출력이 아니라, 다음 RDD는 키가 있습니다
조금 더 많은 문맥이이 질문에 대답하는 데 도움이됩니다. 무엇을 집계하고 싶습니까? 핵심은 무엇입니까? 지금 중첩 목록의 세 번째 항목이 키라고 가정합니다. 중첩 목록의 항목 1과 2는 무시해야합니까? – DrEigelb
예. 당신이 올바른지. 3 번째 필드는 열쇠이고 아이템 1과 2는 무시 될 수 있습니다. –
imho는 울타리 너머의 문제를 던집니다 (특히, 약간의 컨텍스트가 제공되는 경우) 그리고 누군가가 대답을 던지기를 희망하는 플랫폼이 아닙니다. 이미 문제에 대한 생각과 연구를했다는 것을 보여줄 필요가 있습니다. SO-Meta의 [__ 나는 좋은 질문을합니까?] (https://meta.stackexchange.com/help/how-to-ask)를보십시오. 다른 사람들이 귀하의 문제를 잘 이해하고 필요한 답을 찾을 수 있도록 도와줍니다. – DrEigelb