스파크의 실행 계획딥상어동의 딥한 프로그래밍/Spark2021. 4. 21. 00:56
Table of Contents
www.yes24.com/Product/Goods/67116641
스파크 완벽 가이드를 참조하여 작성하였습니다.
트랜스포메이션
- 스파크의 데이터 구조는 "불변성"을 가짐
- 즉, 한번 생성하면 변경 불가
- 따라서, 변경을 하기 위해서는 변경하는 방법을 스파크에 알려주어야 함
- 여기서 중요한 포인트 알려주는 행동과 / 실제 행동은 별개이다.
- 즉, 알려주기만 한다면 "변경 방법만 알고 있는채로" 액션은 하지 않고 대기를 하고 있게 된다.
액션
- 트랜스포메이션은 곧 "논리적 실행 계획"이라고 할 수 있다.
- 따라서, 실제 연산을 위해서는 "액션" 명령을 내려야 한다.
- 액션을 지정하면 스파크 잡이 실행된다.
실행 계획
#데이터 불러오기
flightData2015 = spark.read.option("inferSchema", "true").option("header", "true").csv("/FileStore/tables/flight-data/csv/2015_summary.csv")
#첫 번째 실행 계획
flightData2015.sort("count").explain()
- 위에서 아래로 읽는다.
- 첫번째 줄을 결과, 마지막 줄은 원천
- 가운데에 실행 계획
- 실행 계획은 말 그대로 실행 계획, 액션이 없다면 실행이 "지연된" 상태로 있게 된다.
#실행계획을 시작하기 위한 액션 호출, 셔플의 출력 파티션 수 줄이기, 4040포트 스파크 UI에서 확인
spark.conf.set("spark.sql.shuffle.partitions", "5")
flightData2015.sort("count").take(2)
take(), 실제 액션을 취해야 spark job이 시작 된다.
'딥상어동의 딥한 프로그래밍 > Spark' 카테고리의 다른 글
[PySpark] 자료 구조와 연산 원리 - 스파크 누구냐 넌? (4) | 2022.06.28 |
---|---|
[mllib] Pyspark Kmeans 알고리즘 사용법 (0) | 2022.04.08 |
[Pyspark] from pyspark.sql import * VS from pyspark.sql.functions import * (0) | 2022.04.07 |
[PySpark] Python 내장 함수 사용시 발생하는 오류 (0) | 2021.07.21 |
[scalaSpark] pivot과 unpivot (0) | 2021.02.06 |
@딥상어동의 딥한생각 :: 딥상어동의 딥한생각
제 블로그에 와주셔서 감사합니다! 다들 오늘 하루도 좋은 일 있으시길~~
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!