Patrick's 데이터 세상
Spark RDD 실습 본문
반응형
SMALL
1. Spark 실행
# Spark 디렉토리 하위 bin 디렉토리에서
./spark-shell
2. 간략한 Scala 데이터 변형 작업
# 변수 선언 val = 변경 불가, var = 변경 가능
# Spark Context로 parallelize하여 10에서 50까지 데이터를 10으로 나누어 생성
val number = sc.parallelize(10 to 50 by 10)
Spark의 가장 기본 API인 RDD 형태이며 Int 타입으로 되어있습니다.
number.take(5)
내용을 확인해보면 Array에 Int 타입으로 입력되었습니다.
val numbersq = number.map(num => num*num)
map transformation 연산자를 통해 number의 데이터를 num이라는 변수에 넣어 num끼리 서로 곱하는 구조입니다.
numbersq.take(5)
내용 확인.
# _(placeholder)는 인자가 무엇이던 값을 받는다.
# toString = String 형변환, reverse = 값을 거꾸로.
val resq = numbersq.map(_.toString.reverse)
String으로 형변환하여 값이 반대로 되어있습니다.
3. Scala로 WordCount 실행
# README 파일을 불러들임.
val data = sc.textFile("/home/park/spark-3.0.1-bin-hadoop3.2/README.md")
# 공백 기준으로 데이터 자르기
# flatmap은 Array를 1차로 평평한 구조로 만드는 것.
val datasplit = data.flatMap(line => line.split(" "))
datasplit.take(10)
# Key value 형태로 변경
val datakey = datasplit.map(word => (word, 1))
datakey.take(10)
# 키가 같을 경우 value를 합쳐서 reduce를 진행
val datakr = datakey.reduceByKey(_+_)
10개만 잘라서 보면 For 단어가 3개, processing 단어가 2개인 것을 볼 수 있다.
# 만든 데이터를 파일로 저장
datakr.saveAsTextFile("/home/park/spark-3.0.1-bin-hadoop3.2/test")
반응형
LIST
'Data Analysis > Spark' 카테고리의 다른 글
Spark RDD (0) | 2020.11.04 |
---|---|
Spark Standalone 실행 (0) | 2020.11.04 |
Apache Spark 기본 이론 (0) | 2020.10.26 |
Comments