빅데이터/스파크

스파크 튜토리얼 - (2) 주피터 노트북 설정

Johnny Yoon 2019. 7. 29. 14:48
728x90
반응형

 

주피터 노트북

주피터 노트북은 파이썬을 개발할 때 가장 많이 쓰이는 에디터중 하나일 것입니다.

예전에는 IPython이라고 하는 이름으로 출시가 되었었죠.

Python커널을 사용해 짧은 코드를 돌리고 결과를 그 화면에서 바로 볼 수 있고,

마크다운을 사용해 노트나 보고서 형식으로 작성할 수 있어서,

프로토타이핑이나 보고서 형식의 코드 작성에 유용합니다.

 

주피터 노트북 설정

저는 VirtualBox를 사용하였기 때문에, 외부 접속이 필요해서 다음 설정을 해주었습니다.

먼저 다음 커맨드를 실행해 config파일을 생성해 줍니다.

# jupyter notebook --generate-config

 

그리고 해당 파일을 열어줍니다.

# vi ./.jupyter/jupyter_notebook_config.py

 

아래 한줄을 더해주겠습니다.

해당 라인은 ip를 로컬호스트가 아닌 ip 즉 외부에서도 접속이 가능하게 하겠다는 의미입니다.

아래의 방법 말고도, 본인의 ip자체를 적는 방법도 있습니다. 그럴 경우에는 url에 토큰이 함께 발행됩니다.

c.NotebookApp.ip = '*'

 

PySpark 설정

이제 pyspark의 기본 실행자가 IPython 파이썬 커널이 아닌, 주피터 노트북이 되도록 설정해 주겠습니다.

.bashrc파일을 열어 다음 두줄을 더해주고, source명령을 사용해 적용해줍니다.

export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

 

이제 pyspark 명령을 실행하면 jupyter notebook이 실행됩니다.

본인의 기기에 설정하셨다면 localhost를, vm에 설정하셨다면 해당 vm의 ip를 사용해 접속이 가능합니다.

 

Spark Context 확인

이제 jupyter notebook에서 새로운 노트북을 만들고,

스파크 컨텍스트를 출력해보겠습니다.

 

In [1]:
sc
Out[1]:

SparkContext

Spark UI

Version
v2.3.3
Master
local[*]
AppName
PySparkShell

 

위와같이 실행이 되면 성공적으로 설정이 완료된 것입니다.

 

주피터 노트북에서 PySpark 사용

이제 스파크를 사용해 기본적인 프로그래밍을 해보겠습니다.

먼저 하둡의 워드카운트와 같은 (HelloWorld 수준의 예제) 예제를 실행해보겠습니다.

텍스트 파일을 가볍게 분석하는 예제입니다.

먼저 spark디렉터리의 README.md를 복사해오겠습니다. (이 디렉토리는 jupyter notebook의 workspace입니다.)

# cp spark/README.md .

 

노트북에 다음과 같은 코드를 입력하고 실행해 보겠습니다.

 

In [1]:
lines = sc.textFile("README.md")
lines.count()
Out[1]:
103

 

103이라는 결과가 나옵니다.

 

이번에는 README.md파일 내의 Pythion이 들어간 줄을 모두 뽑아내는 코드 입니다.

첫번째 줄을 뽑아보면 다음과 같은 텍스트가 나옵니다.

 

In [13]:
pythonLines = lines.filter(lambda line: "Python" in line)
pythonLines.first()
Out[13]:
'high-level APIs in Scala, Java, Python, and R, and an optimized engine that'

 

여기까지 스파크와 주피터 노트북의 설정을 마쳤습니다.

728x90
반응형