LabHub
学习 学习路径 课程

Apache Spark — 느린 잡의 답은 실행 계획과 이벤트 로그에 있다 · 실행 계획 읽기 · 测验

퀴즈: 실행 계획 읽기

在 LabHub 中继续学习

6道题. 完成作答后会显示正确答案和解析。

  1. Parquet 을 읽는 FileScan 노드에서 쓰지 않는 칼럼을 디스크에서 올리지 않았는지 확인하려면 어느 칸을 보는가?

    1. PushedFilters
    2. ReadSchema
    3. PartitionFilters
    4. DataFilters
  2. where(qty >= 5) 는 PushedFilters 에 보이는데 where(upper(status) == 'PAID') 는 보이지 않는다. 가장 알맞은 설명은?

    1. 문자열 칼럼은 Parquet 에서 밀어내기를 전혀 지원하지 않는다
    2. upper 를 쓰면 질의 결과가 달라져 Spark 가 조건을 버린다
    3. 칼럼을 함수로 감싸면 리더가 알아듣는 단순 비교가 아니게 된다
    4. filterPushdown 의 기본값이 false 라 켜야 보인다
  3. 날짜로 partitionBy 한 Parquet 에 day = '2026-01-03' 조건을 걸었다. 이 조건이 비용을 가장 크게 줄이는 이유는?

    1. 디렉터리 목록 단계에서 다른 날짜의 파일을 아예 열지 않기 때문
    2. 각 파일의 최소·최대 통계로 행 그룹을 건너뛰기 때문
    3. 날짜 칼럼만 읽도록 ReadSchema 가 줄어들기 때문
    4. AQE 가 실행 도중에 다른 날짜의 태스크를 취소하기 때문
  4. 행동을 부르기 전에 explain() 을 찍었더니 맨 위에 AdaptiveSparkPlan isFinalPlan=false 가 보였다. 옳은 해석은?

    1. AQE 가 꺼져 있다는 뜻이라 설정을 켜야 한다
    2. 계획에 오류가 있어 실행하면 실패한다는 경고다
    3. explain 의 모드가 simple 이라 최종 계획이 생략되었다
    4. 런타임 통계가 아직 없어 실행 중 바뀔 수 있는 예고편이다
  5. where(a > 1).where(b < 5).where(c == 'x') 처럼 조건을 세 번 나눠 썼다. 최적화된 논리 계획은 어떻게 되는가?

    1. Filter 노드 세 개가 차례로 남아 자료를 세 번 훑는다
    2. 조건 셋이 Filter 하나로 합쳐진다
    3. 첫 조건만 적용되고 나머지는 무시된다
    4. 조건마다 잡이 하나씩 따로 뜬다
  6. Spark 가 조인이나 집계 전략을 고를 때 쓰는 추정치가 궁금하다. 공식 문서가 안내하는 방법은?

    1. explain(mode="codegen") 으로 생성된 코드를 읽는다
    2. explain(mode="formatted") 의 노드 번호를 센다
    3. explain(mode="cost") 로 최적화된 계획의 통계를 본다
    4. 이벤트 로그에서 태스크 끝 이벤트 수를 센다