#한번에 몽땅 설치
PySpark 에서 GraphFrames 를 돌려보는 기록을 남기려고 했는데,
내 노트북에서 실행이 안되다.
그럼 일단 이렇게 해보자.
1. curl -s "https://get.sdkman.io" | bash
2. sdk help
여기서 중요한게!
PySpark 실험을 할 때에는 꼭! databricks 를 참고하자.
팀에 PySpark 를 만들고 운영하신 분이 없다면 databricks 가 정답에 가장 가깝다.
GraphFrames 관련 기록은 다음에 진행하고,
우선 돌아가게 만드는 환경부터 만들어보자.
(사실 구글 colab 에서 하면 되는데, 이상하게 나는 graphframes 사용에 에러가 나타난다...)
3. sdk install java
4. sdk install scala 2.11 or 2.12
5. sdk compile
이 순서인데,
PySpark 를 실행 할 때, --packages 를 넘겨줘야 graphframes 를 사용할 수 있다.
~ % pyspark --packages graphframes:graphframes:0.8.1-spark3.0-s_2.12
여기서 spark3.0 은 말그대로 스파크 버전이다. 딱 3.0 이 아니어도 작동한다.
근데, 3.0 은 Scala 2.12 만 존재한다.
위에서 언급한 --packages 를 자세히 살펴보면 마지막에 s_2.11 가 있는데,
Scala 버전이다.
그렇다면 나도 Scala 버전을 맞춰서 설치해줘야 좋을 것 같다는 감이 온다.
~ % sdk install scala 2.12
간단하게 테스트를 돌려보면,
(로컬에서 돌리니까 특별히 다른 옵션을 넣을 필요는 없다)
라이브러리를 잘 설치했다면 볼 수 있다.
간단한 예제는 예전에 미국비행데이터로 해보는 실험을 통해서 확인할 수 있다.
예제는 역시,
https://docs.databricks.com/_static/notebooks/graphframes-user-guide-py.html
근데 이걸로 뭘 할꺼냐면...
나는 추천시스템을 개발하고 계속해서 고도화를 시키는데
GraphFrames 를 통해서 새로운 Base 모델을 만들어 보려고 한다.
뭐랄까... 이건 마치... 연결고리 같은 느낌.
Neo4J 에서 [영화, 배우] 관계를 나타낸 예제는 그래프 노드 연결에서 연관성과 밀접도를 볼 수 있듯이
어떤 데이터를 넣어서 각각의 연결과 주고받는 관계를 확인한다는 행위는
도메인의 성격과 내 서비스의 특징을 가장 잘 파악할 수 있는 'Key Factor' 라고 생각한다.