나는 형태 I가 각 인덱스 (IDX1, idx2,이 배열에서 상위 10과 하단 (10 개) 요소를 얻으려면색인 현명한 가장 자주 발생하는 요소
val array: Array[(Int, (String, Int))] = Array(
(idx1,(word1,count1)),
(idx2,(word2,count2)),
(idx1,(word1,count1)),
(idx3,(word3,count1)),
(idx4,(word4,count4)))
의 배열을 가지고 ....). 기본적으로 각 인덱스 값에 대해 가장 많이 발생하는 상위 10 개 요소와 하위 10 개 하위 요소를 원합니다.
가장 효과적인 방법으로 스파크를 발산하는 방법을 제안하십시오. 각 인덱스에 대해 for 루프를 사용하여 시도했지만 프로그램이 너무 느려지고 순차적으로 실행됩니다.
이(0,("apple",1))
(0,("peas",2))
(0,("banana",4))
(1,("peas",2))
(1,("banana",1))
(1,("apple",3))
(2,("NY",3))
(2,("London",5))
(2,("Zurich",6))
(3,("45",1))
(3,("34",4))
(3,("45",6))
Suppose I do top 2 on this set output would be
(0,("banana",4))
(0,("peas",2))
(1,("apple",3))
(1,("peas",2))
(2,("Zurich",6))
(2,("London",5))
(3,("45",6))
(3,("34",4))
나는 또한 같은 방식으로 스파크에 대한
내가 원하는 것은 분명하지 않습니다. 두 개의 항목이 있습니다 (idx1, (word1, count1)). idx1의 요소를 계산할 때 이들을 (word1, count1 * 2)로 병합합니까? 입력과 출력의 구체적인 예가 도움이 될 것입니다. –
@Paul ... 입력과 출력에 대한 예제로 내 질문을 편집했습니다. –
그리고 그에 따라 대답을 수정했습니다. –