-3
에는 다음이 포함- 분할지도하는 getKey을 내가 텍스트 파일 느릅 나무가 등등
A>B,C,D
B>A,C,D,E
C>A,B,D,E
D>A,B,C,E
E>B,C,D
나는 다음과 같은 얻기 위해 스파크 - 스칼라 스크립트를 작성하려합니다
: 각 왼쪽의 경우 (회원은, 우리는 모든 권리 구성원을 제공합니다.)
(A,B)
(A,C)
(A,D)
(B,A)
(B,C)
(B,D)
(B,E)
...
나는지도를 통해 이동 내 결과를 새로운 맵을 공급하기 위해 키를 얻기 위해 시도했지만 작동하지 않았다. 나는 내 요구에 어떤 답을 찾을 수 없기 때문에이 - 스칼라 불꽃이 같은 기본적인 코드를 작성할 수 있습니다 궁금
import scala.io.Source
// Loading file
val file = sc.textFile("friends.txt")
// MAP
// A;B
// A;C
// ...
var associations_persons_friends:Map[Char,Char] = Map()
var lines = file.map(line=>line.split(">"))
for (line <- lines)
{
val person = line.key
for (friend <- line.value.split(","))
{
associations_persons_friends += (person -> friend)
}
}
associations_persons_friends.collect()
val rdd = sc.parallelize(associations_persons_friends)
rdd.foreach(println)
// GROUP
// For each possible pair, all associated values
// AB;B-C-D-A-C-D-E
// REDUCE
// For each pair we keep occurences >= 2
// AB;C-D
: 여기
(자세한 의사 코드 같은) 내 코드입니다 인터넷. 도움 주셔서 감사합니다.
감사합니다 도움이 될 것입니다 희망
로 출력을해야
로
map
및flatMap
의 조합으로 귀하의 요구 사항을 달성 할 수있다. 내 의사 코드를 이런 식으로 변환하는 방법을 찾는 데 어려움이 있습니다. 내가 말할 수있는 조언이나 온라인 리소스가 있습니까? – CodeWalker예를 들어 다음 단계를 수행하려면 다음을 수행해야합니다. 각 왼쪽 멤버에 대해 : 왼쪽 멤버를위한 커플을 만듭니다. - 생성 된 각 커플에 대해 : 모든 해당 오른쪽 멤버를 가져옵니다. 나는 내 자신이이 일을하기 위해 사용할 수있는 문서의 종류를 모른다. – CodeWalker
그것 대답은 다음 upvote 도움 받아 그것을 받아 :) –