Spark UI

Python에서 Spark SQL 입문

Mark Plutowski

Data Scientist

Spark UI로 실행 분석하기

  • Spark Task: 단일 CPU에서 실행되는 작업 단위

  • Spark Stage: 동일 연산을 병렬 수행하는 태스크 묶음. 각 태스크는 데이터의 서로 다른 부분집합에서 실행됨

  • Spark Job: 액션으로 트리거되는 연산. 하나 이상의 스테이지로 분할됨

Python에서 Spark SQL 입문

Spark UI 찾기

  1. http://[DRIVER_HOST]:4040
  2. http://[DRIVER_HOST]:4041
  3. http://[DRIVER_HOST]:4042
  4. http://[DRIVER_HOST]:4043
    ...
Python에서 Spark SQL 입문

Python에서 Spark SQL 입문

Python에서 Spark SQL 입문

Python에서 Spark SQL 입문

Spark 카탈로그 작업

  • spark.catalog.cacheTable('table1')
  • spark.catalog.uncacheTable('table1')
  • spark.catalog.isCached('table1')
  • spark.catalog.dropTempView('table1')
Python에서 Spark SQL 입문

Spark 카탈로그

spark.catalog.listTables()
[Table(name='text', database=None, description=None, tableType='TEMPORARY', isTemporary=True)]
Python에서 Spark SQL 입문

Python에서 Spark SQL 입문

Python에서 Spark SQL 입문

Spark UI Storage 탭

데이터 파티션 위치 표시:

  • 메모리
  • 디스크
  • 클러스터 전체
  • 특정 시점 스냅샷
Python에서 Spark SQL 입문

Spark UI SQL 탭

query3agg = """
SELECT w1, w2, w3, COUNT(*) as count FROM (
   SELECT 
   word AS w1,
   LEAD(word,1) OVER(PARTITION BY part ORDER BY id ) AS w2,
   LEAD(word,2) OVER(PARTITION BY part ORDER BY id ) AS w3
   FROM df
)
GROUP BY w1, w2, w3 
ORDER BY count DESC
""" 

spark.sql(query3agg).show()
Python에서 Spark SQL 입문

Python에서 Spark SQL 입문

Python에서 Spark SQL 입문

Python에서 Spark SQL 입문

Python에서 Spark SQL 입문

Ayo berlatih!

Python에서 Spark SQL 입문

Preparing Video For Download...