이것저것 프로그래밍 정리(Macbook)

apache-spark에서 map,lambda 함수 활용하기(2) - pyspark 본문

apache-spark(big data)

apache-spark에서 map,lambda 함수 활용하기(2) - pyspark

parkaparka 2020. 4. 24. 15:47
반응형

https://parkaparka.tistory.com/14

 

apache-spark에서 map,lambda 함수 활용하기(1)

map() 함수를 이해하기 위해 map() 함수를 사용하지 않고 섭씨를 화씨로 변환하는 c2f() 파이썬 함수를 만들어 보자. Python 함수 c2f() 위 함수를 간단히 설명하면 데이터를 하나씩 읽어서 for문으로 처리하고 l..

parkaparka.tistory.com

저번 글에서는 map, lambda 함수의 기본을 알아보았다.

이번 글에서는 map, lambda를 RDD에 적용 시켜 보도록 하자.


RDD 사용하기

map, reduce, filter ,lambda를 이용해서 RDD를 사용해보자.


map 함수 RDD에서 사용

 

먼저 parallelize를 통해 myList를 RDD 형태로 만들어준다.

이후 생성된 RDD를 map, lambda를 이용해서 제곱시켜준다.


reduce 함수 RDD에서 사용하기

 

이번에는 reduce를 사용해보도록 하자.

range(1,101) 를 이용해 1 ~ 101을 RDD로 만들었다.

reduce() 는 lambda 함수를 사용해서 입력 데이터 2개씩을 서로 더해서 x+y 결과 값을 만들어 낸다.


filter 함수 RDD에서 사용하기

Wikipedia
Apache Spark is an open source cluster computing framework.
아파치 스파크는 오픈 소스 클러스터 컴퓨팅 프레임워크이다.
Apache Spark Apache Spark Apache Spark Apache Spark
아파치 스파크 아파치 스파크 아파치 스파크 아파치 스파크
Originally developed at the University of California, Berkeley's AMPLab,
the Spark codebase was later donated to the Apache Software Foundation,
which has maintained it since.
Spark provides an interface for programming entire clusters with
implicit data parallelism and fault-tolerance.

filter를 이용해서 위 글을 예시로 spark 단어가 포함된 문장의 갯수를 파악해 보도록 하자.

위 글을 ds_spark_wiki.txt 라는 글로 저장해 주도록 하자.

이후 .txt 파일을 RDD로 생성해 주자.

생성한 RDD를 collect()를 이용해서 확인해주자.

그러고 filter()를 이용해서 "Spark" 가 들어간 줄들만 collect 하고 count()를 통해 몇개인지 확인해보자.

"Spark"가 들어간 문장은 4개인 것을 확인 할 수 있다.


map VS flatmap

map의 경우 리스트 안에 또 리스트가 있는 구조를 보존하고 처리한다. 따라서 파일의 각 줄 마다 리스트를 만든다.

flatmap의 경우 map의 결과에서 리스트 안에 또 리스트가 있는 경우 이를 하나의 리스트로 만들어준다. 모든 단어를 하나의 리스트로 만들어 준다.

예시를 통해서 보는게 더 쉽다. 예시를 봐보도록 하자.

%%writefile data/ds_bigdata_example.txt
big data Big Data
apache spark Apache Spark
pyspark Pyspark pySpark 

위의 ds_bigdata_example.txt 예제를 갖고 예제를 진행해보도록 하자.

먼저 RDD를 생성해 주도록 하자.

다음과 같이 RDD를 생성해 주었다.

이후 이제 map과 flatmap을 해서 두가지의 차이점을 보도록 하자.

먼저 map부터 해보도록 하자.

map의 결과 각 줄이 하나의 리스트를 형성해서 큰 리스트 안에 들어가 있는 것을 확인 할 수 있다.

이제 flatmap을 확인해보도록 하자.

flatmap의 경울 모든 단어가 연결되어 하나의 리스트에 들어가 있는 것을 확인 할 수 있다.

다음 글에서는 대소문자 변경, 불용어 제거, 단어가 몇개가 나오는지 단어의 수를 확인해보도록 하자.

반응형
Comments