일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- spark df
- 데이터엔지니어링
- pyspark오류
- dataframe
- 언어모델
- 프로그래머스 파이썬
- PySpark
- SparkSQL
- BigQuery
- 로컬 pyspark
- sparkdf
- LLM
- 빅쿼리
- 도커
- 데이터 시각화
- 도커exec
- 도커오류
- DataFrame Spark
- ifkakao2020
- spark #스파크
- Big Query
- spark explode
- Docker error
- 시각화
- 빅쿼리 튜닝
- airflow
- tableau
- 태블로
- docker
- 코테
Archives
- Today
- Total
SOGM'S Data
SPARK_01 : RDD_1 본문
무비 렌즈 데이터로 영화 평점 COUNT()하는 예제
1. Spark context 생성. 각 메소드는 주석 참조
from pyspark import SparkConf, SparkContext
import collections
conf = SparkConf().setMaster("local").setAppName("RatingsHistogram")
#set master의 경우 cluster가아닌 local에서 실시. 즉 데이터 분산 x
#sparkAppname은 spark web ui에서 식별할 수 있는 값.
sc = SparkContext(conf = conf)
2. sc객체로 데이터 읽어오기.
lines = sc.textFile("file:///SparkCourse/ml-100k/u.data")
ratings = lines.map(lambda x: x.split()[2]) # map을 통한 ratings이라는 새로운 rdd생성
이때 u.data의 구조는 아래와 같다.
좌측부터
유저id , 영화id , 평점, timestamp
하나의 줄(row)가 하나의 RDD가 된다. 위 사진으로만 친다면 11줄이니까 11개의 RDD가 생성.
x.split()[2]이므로 평점 필드를 불러온다.
-> 즉 모든 줄에서 평점 값을 꺼내 ratings이라는 새로운 RDD로 만든다.
ratings의 모습은 아래와 같을 것이다.
이때 lines RDD에 map을통해 ratings RDD를 생성했더라도 lines RDD는 변하지 않는다!
3. countByValue
result = ratings.countByValue()
sortedResults = collections.OrderedDict(sorted(result.items()))
for key, value in sortedResults.items():
print("%s %i" % (key, value))
countByValue 후 각 평점은 (key, value) -> (평점, count)를 resullt로 저장. -> RDD가 아닌 ACTION
(3,4) (1,2) (2,3) (4,1) (5,1) 를 출력하는 PYTHON코드 (KEY 값으로 정렬)
-> (1,2) (2,3) (3,4) (4,1) (5,1)
'About Data > Engineering' 카테고리의 다른 글
SPARK_02 : DATAFRAME_1 (0) | 2022.02.17 |
---|---|
SPARK_01 : RDD_2 (mapvalue, reduceByKey) (0) | 2022.02.06 |
로컬에 spark 설치후 pyspark 실행 오류 (3) | 2021.12.31 |
[1-4] SPARK RDD + structured data (0) | 2021.12.28 |
[1-3]SPARK RDD 세부설명+dataframe (0) | 2021.12.27 |
Comments