Open s5646s opened 4 months ago
Introduction to Google Colab and PySpark https://colab.research.google.com/drive/1G894WS7ltIUTusWWmsCnF_zQhQqZCDOc#scrollTo=1qV6Grv7qIa9
요 노트북 잘근잘근 물고 뜯어보고 오셔요! 다음주 스터디 마스터는 저이지만 다 같이 스터디 진행한다고 보시면 됩니다!
[심화 과제] 제대로 의미있는 학습 시간 가지고 싶다하시는 분은 해당 노트북의 설명 부분들을 한글로 번역해서 2차 배포하시면 아주 좋은 디딤돌이 될 거에요! ㅎㅎ
다음주 스터디 마스터: 승위
https://colab.research.google.com/drive/1G894WS7ltIUTusWWmsCnF_zQhQqZCDOc#scrollTo=1qV6Grv7qIa9
현재까지 8. DataFrame Operations on Rows까지 코드 실행하고 여러가지 다른 코드도 실행 시켜보고 노션에 정리했습니다! 정리한 노션 링크 공유드립니다!
저도 한 번 읽고 실습해보았습니다~ dataframe에 대한 조작방법은 이해가 쉽게 되는데, Job tuning? 쪽은 어렵네요ㅜ https://www.notion.so/koseungbin/week-1-8ffe98ca27db46fcaed65c6098d5031e?pvs=4
안녕하세요! 나른한 주말 오후입니다 🥱
다름이 아니고, 어제 승빈 선배님께서 공유해주신 노션 페이지에서 궁금하신 부분이라고 작성한 부분을 읽어봤습니다. 개인적으로 ‘빅테이터를 지탱하는 기술’이라는 책을 읽고 있었는데, 마침 3번 궁금증에 관한 내용을 책에서 읽었던 것 같아 부족하지만 조금이라도 도움이 되고자 제 생각을 공유드립니다!
다음은 책의 일부 내용입니다. Hadoop은 단일 소프트웨어가 아니라 분산 시스템을 구성하는 다수의 소프트웨어로 이루어진 집합체이다. 그리고 Hadoop의 기본 구성 요소는 다음과 같다.
또, 모든 분산 시스템이 Hadoop에 의존하는 것이 아니라, Hadoop의 일부만 사용하거나 혹은 전혀 이용하지 않는 구성도 있다고 합니다.
HDFS는 일반 디스크(가정용 컴퓨터)에 들어가는 작은 파일을 저장할 때는 필요하지 않고, 파일의 크기가 너무 커서 단일 디스크에 저장하지 못하거나 혹은 저장할 수 있더라도 분산 처리의 속도와 안정성을 위해 클러스터 내 여러 컴퓨터에 나누어야 할 경우엔 HDFS가 필요한 것으로 알고 있습니다.
그래서 분산 시스템의 목적에 맞게 Hadoop의 구성 요소를 조합할 수 있고, 대용량 파일을 분산 저장해야 해서 파일 시스템에 HDFS가 필요한 경우가 있기 때문에 HDFS가 Hadoop의 구성 요소로써 필요하다고 생각합니다. 반대로 HDFS가 적합하지 않은 경우에, 분산 시스템의 이점을 기반으로 빠른 응답 시간을 원한다면 HBase가 대안이 될 수 있다고 합니다.!
2번 궁금증에 관한 내용은 구글링을 하다가 도움이 될 만한 문서를 찾았습니다. 아래 링크의 “사용 사례 비교: Hadoop과 Spark” 부분이 궁금증에 관해서 도움이 될 것 같아서 공유드립니다!
https://aws.amazon.com/ko/compare/the-difference-between-hadoop-vs-spark/
https://www.notion.so/invite/5dc19cc70d3ca5e64a04b001a3c8204d2b5f59f9 저두 개인톡으로 말씀드린 사유로 늦게나마 공유합니다! Common Questions, 특히 Tuning part 부분이 어려운 것 같아요..! 오늘 스터디 때 뵙겠습니다!
저도 개인사유로 스터디전에 공유합니다! 명령어 수행 및 노트 위주이고 추가 내용은 아래에 정리해두었습니다.
https://s-on.notion.site/1-7b8f5f637b804c718f6b4a7055c9ecb8?pvs=25
https://colab.research.google.com/drive/1BKHk-63x0TvZ1b-YUV2vAnNKwfIYWRiW?usp=sharing
movie_data_template.py: https://colab.research.google.com/drive/1BKHk-63x0TvZ1b-YUV2vAnNKwfIYWRiW?usp=sharing
영화 장르에 중복 데이터가 있는 것 같은데 맞을까요? 🧐 그래서 저는 데이터 집계할 때 movie_genres.csv > (movieId, genre) 쌍을 유니크로 보고 중복제거하고 쿼리했어요
———————————————————————
요약 : movie_genres.csv
에서 한 개의 영화가 여러개의 장르를 가진다. 그런데 (영화아이디, 장르) 쌍 중복 이슈가 있어 제거가 필요해보인다.
Toy Story(movie_id : 1) 이면서 아래 mgenreId 와 genre 를 가짐
이것을 어떻게 봐야할까?
하나의 영화가 여러개의 장르를 가질 수는 있다. (가족, 코미디) 그런데 (가족, 가족, 코미디, 코미디) 일 순 없다.
원본 데이터의 이슈로 보이는데 movie_genres > movie_id, genre 를 기준으로 중복 제거해야 할 것 같다.
현재 table 구조상 mgenre_id 는 다른 테이블과의 key 로 사용되지 않으므로 중복 제거 과정에서 유실되어도 이슈 없어보인다.
제가 봤을 때도 모든 영화가 같은 장르가 두번 반복되어 저장되어있네요!
말씀해주신 "원본 데이터의 이슈로 보이는데 movie_genres > movie_id, genre 를 기준으로 중복 제거해야 할 것 같다." 이 말씀에 같은 생각입니다.
지난 주에 학습했던 노트북의 "Best Practices - 3. Drop Duplicates early." 부분이 떠올랐습니다!
좋은 정보 감사합니다! 다들 월요일 화이팅하세요!!
성온님, 준영님 말씀대로 movie_genres > movie_id, genre를 기준으로 중복 제거를 하고 나니, 과제 2번의 답이 아래와 같이 바뀌었는데요, 각 genre의 highRatedCount는 정확히 절반 값으로 바뀌었고, lowRatedCount도 절반 가까이 줄었네요.
혹시 다들 이렇게 나오셨는지 여쭤봐도 괜찮을까요?
highRatedCount 는 동일한데 lowRated Count 는 차이가 있네요 이건 사용한쿼리를 비교해보면 될 것 같아요
https://github.com/so3500/2024-spark/blob/main/PySpark_study_playground_by_ON.ipynb
초반부에 세팅하고 마지막에 peek 정의하는 부분 참고하시면 좋을 것 같습니다!
어제 발표했던 windowSpec 관련 문제입니다!
과제는 토요일 자정까지 각자 구글 코랩에 과제 명세 작성해서 PR 생성하는 방식으로 올려보시죠! (각자 1개 씩 생성한 창작 과제) 수요일에는 각자 올린 것들 모아서 풀어오시면 됩니당~
3주차_과제_원본데이터.zip https://www.hani.co.kr/arti/society/environment/1124584.html
# Read all files in a folder, please make sure only CSV files should present in the folder.
folderPath = "examples/src/main/resources"
df5 = spark.read.csv(folderPath)
df5.show()
6월 20일 스터디 대화방 개설
공지
스터디원들의 인사 한 마디
스터디 시간: 매주 수요일 저녁 9시 ~