-
연산을 위해 그래프를 하나 생성합니다.
1. numEdges, numVertices 그래프의 Edge와 Vertex의 개수
2. inDegrees, outDegrees, degrees
Vertex를 기준으로 들어는 Edge의 개수 나가는 Edge의 개수, 들어오거나 나가는 Edge의 개수 (vertexID, 개수)
3. vertices, edges, triplets 그래프에 포함 된 요소들의 정보를 출력
* return 값은 각각 VertexRDD, EdgeRDD, RDD[EdgeTriplet]
4. mapVertices(), mapEdges(), mapTriplets();mapTriplets의 결과는 파티션단위로 처리도 가능하다.연산의 수행결과는 새로운 그래프가 된다.
2017/07/08 - [2017년여름/Spark] - 맵 리듀스란?
4-1) map
4-2) 출력: 기존에 P1,P2 였던게 위의 map연산에 의해 3=>P3, 4=>P4같은 형ㅇ태로 변환
↓ 요렇게 변화
4-3) 파티션 단위의 처리
아래에 보면 동일 파티션에 속하는 edge들을 Iterator형태로 전달받아서 한번에 처리.
* GraphX는 대용량 그래프 분산 처리를 위해 vertex정보를 여러 파티션에 분할하는 저장법을 사용하기 때문에 Edge,EdgeTriplet의 경우 파티션 단위로 처리할 수 있으나 mapVertices의 경우는 파티션 단위로 처리할 수 없다.
5. reverse() Edge의 srcID와 dstId를 반대로 바꾸어주는 연산
6. subgraph() 조건식에 맞는 Vertex와 Edge로 구성된 새로운 그래프 구성
아래 그림에서
g6 : g1그래프에서 꼭짓점의 속성값이 P2인것
g7 : g1그래프에서 꼭짓점의 속성값이 P4인것과 관련 없는
'2018년 > spark' 카테고리의 다른 글
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable (0) 2018.07.24 오랜만에 만져보는 spark scala코드 (0) 2018.07.18 GraphX ~그래프 생성까지 (0) 2018.04.02 spark info좀 꺼보자 (0) 2018.02.28 Spark Streaming,Structured Streaming (0) 2018.02.27