2017-10-31 1 views
0

저는 Java에서 Apache Spark를 시작했습니다. 현재 일부 서적 데이터가 포함 된 미니 프로젝트를 진행 중입니다. 나는 각 나라에서 가장 유명한 작가를 찾아야한다. Java의 Apache Spark에서 Tuple3을 사용하는 동안 combineByKey의 대안은 무엇입니까?

나는 키가 국가 인 pairRDD을 가지고 값이

[(usa,C. S Lewis), (australia,Jason Shinder), (usa,Bernie S.), (usa,Bernie S.)] 

처럼, 저자 인 나는 또 하나 개의 필드를 추가 Tuple3를 사용하여 각 값이 존재하는 횟수를 계산해야합니까 ? 그렇다면 Tuple3에 combineByKey를 어떻게 사용합니까?

나는 pairRDD에서 모든 키를 가져올 수 있고 또 다른 pairRDD를 author_names과 함께 사용하도록 필터링 할 수 있고 가장 많이 사용되는 저자를 찾을 수있는 횟수가 각각 다른 아이디어가있었습니다. 그러나 이것은 일련의 키를 반복해야하기 때문에 우아한 솔루션처럼 느껴지지 않습니다. 도움.

답변

1

이것은 문자 YAW (또 다른 단어 수)입니다 :

rdd.mapToPair(s -> new Tuple2<>(s, 1)).reduceByKey((c1, c2) -> c1 + c2); 
+0

단어 개수 문제는 다음 값으로 1 PairRDD로 변환 RDD 있습니다. 여기에는 이미 두 개의 필드가 있습니다. 키는 국가이고 값은 작성자입니다. 필요한 솔루션은 각 국가별로 인기있는 작성자를 찾아야하므로이 두 필드에 따라 달라 지므로 reduceByKey를 사용하려면 값을 1로 대체 할 여유가 없습니다. – kaushik3993

관련 문제