이 문서에서는 Apache Spark용 서버리스 일괄 워크로드 및 대화형 세션을 가속화하기 위해 네이티브 쿼리 실행을 사용 설정하는 시기와 방법을 설명합니다.
네이티브 쿼리 실행 요구사항
Apache Spark용 Dataproc Serverless 네이티브 쿼리 실행은 Apache Spark용 Dataproc Serverless 프리미엄 가격 책정 등급에서 실행되는 1.2.26+
, 2.2.26+
또는 이후 Spark 런타임 버전을 사용하는 일괄 워크로드 및 대화형 세션에서만 사용할 수 있습니다.
프리미엄 등급 가격은 표준 등급 가격보다 높은 비용으로 청구되지만 네이티브 쿼리 실행에 대한 추가 요금은 없습니다.
가격 책정 정보는 Apache Spark용 서버리스 가격 책정을 참고하세요.
네이티브 쿼리 실행 속성
이 섹션에는 배치 워크로드 또는 대화형 세션의 네이티브 쿼리 실행을 사용 설정하고 맞춤설정하는 데 사용할 수 있는 필수 및 선택적 Spark 리소스 할당 속성이 나열되어 있습니다.
필수 속성 설정
spark.dataproc.runtimeEngine=native
: 기본spark
런타임 엔진을 재정의하려면 워크로드 런타임 엔진을native
로 설정해야 합니다.spark.dataproc.spark.driver.compute.tier=premium
및spark.dataproc.executor.compute.tier=premium
: 이러한 가격 등급 속성은 프리미엄 가격 등급으로 설정해야 합니다.
선택적 리소스 할당 속성
spark.dataproc.driver.disk.tier
,spark.dataproc.driver.disk.size
,spark.dataproc.executor.disk.tier
,spark.dataproc.executor.disk.size
: 이러한 속성을 사용하여 Spark 드라이버 및 실행기 프로세스의 프리미엄 디스크 등급과 크기를 설정하고 구성합니다.프리미엄 디스크 등급은 행 기반 셔플 대신 열 기반 셔플을 사용하여 성능을 개선합니다. 셔플 I/O 처리량을 개선하려면 셔플 파일을 수용할 수 있을 만큼 충분히 큰 디스크 크기로 드라이버 및 실행기 프리미엄 디스크 등급을 사용하세요.
spark.driver.memory
,spark.driver.memoryOverhead
,spark.executor.memory
,spark.executor.memoryOverhead
,spark.memory.offHeap.size
: 이러한 속성을 사용하여 Spark 드라이버 및 실행자 프로세스에 제공되는 메모리를 조정합니다.다음 방법 중 하나로 메모리를 구성할 수 있습니다.
옵션 1: 지정된 값으로 오프힙 메모리 (
spark.memory.offHeap.size
)만 구성합니다. 네이티브 쿼리 실행은 지정된 값을 오프힙 메모리로 사용하고 오프힙 메모리 값의1/7th
를 온힙 메모리 (spark.executor.memory
)로 할당합니다.옵션 2: 온힙 메모리 (
spark.executor.memory
)와 오프힙 메모리(spark.memory.offHeap.size
)를 모두 구성합니다. 오프힙 메모리에 할당하는 양은 온힙 메모리에 할당하는 양보다 커야 합니다.
오프힙 메모리 (
spark.memory.offHeap.size
)와 온힙 메모리 (spark.executor.memory
)를 모두 구성하지 않으면 네이티브 쿼리 실행 엔진이 기본4g
메모리 양을 오프힙과 온힙 메모리 간에6:1
비율로 나눕니다.권장사항:
6:1
비율로 오프힙을 온힙 메모리에 할당합니다.예:
네이티브 쿼리 실행이 없는 메모리 설정 네이티브 쿼리 실행을 사용하는 권장 메모리 설정 spark.executor.memory
spark.memory.offHeap.size
spark.executor.memory
7g 6g 1g 14g 12g 2g 28g 24g 4g 56g 48g 8g
자격 도구 실행
네이티브 쿼리 실행 (NQE)으로 더 빠른 런타임을 달성할 수 있는 일괄 워크로드를 식별하려면 자격 도구를 사용하면 됩니다. 이 도구는 Spark 이벤트 로그를 분석하여 잠재적인 런타임 절감액을 추정하고 NQE 엔진에서 지원하지 않는 작업을 식별합니다.
Google Cloud 는 자격 요건 분석을 실행하는 두 가지 방법(자격 요건 작업 및 자격 요건 스크립트)을 제공합니다. 대부분의 사용자에게 권장되는 방법은 일괄 워크로드의 검색 및 분석을 자동화하는 적격성 확인 작업입니다. 알려진 이벤트 로그 파일을 분석하는 특정 사용 사례에 대체 자격 스크립트를 사용할 수 있습니다. 사용 사례에 가장 적합한 방법을 선택하세요.
자격 요건 작업 (권장): 기본이자 권장되는 방법입니다. 하나 이상의 Google Cloud 프로젝트와 리전에서 최근 일괄 워크로드를 자동으로 검색하고 분석하는 PySpark 작업입니다. 개별 이벤트 로그 파일을 수동으로 찾지 않고 광범위한 분석을 실행하려면 이 메서드를 사용하세요. 이 접근 방식은 NQE 적합성을 대규모로 평가하는 데 이상적입니다.
자격 스크립트 (대체): 고급 또는 특정 사용 사례를 위한 대체 방법입니다. 단일 Spark 이벤트 로그 파일 또는 특정 Cloud Storage 디렉터리 내의 모든 이벤트 로그를 분석하는 셸 스크립트입니다. 분석할 이벤트 로그의 Cloud Storage 경로가 있는 경우 이 메서드를 사용합니다.
자격 요건 작업
자격 요건 작업은 프로그래매틱 방식으로 Apache Spark용 서버리스 일괄 워크로드를 검색하고 분산 분석 작업을 제출하여 대규모 분석을 간소화합니다. 이 도구는 조직 전체의 작업을 평가하므로 이벤트 로그 경로를 수동으로 찾아 지정할 필요가 없습니다.
IAM 역할 부여
자격 요건 작업이 일괄 워크로드 메타데이터에 액세스하고 Cloud Logging에서 Spark 이벤트 로그를 읽으려면 워크로드를 실행하는 서비스 계정에 분석할 모든 프로젝트에서 다음 IAM 역할이 부여되어야 합니다.
자격 요건 작업 제출
gcloud CLI 도구를 사용하여 자격 요건 작업을 제출합니다. 작업에는 공개 Cloud Storage 버킷에 호스팅된 PySpark 스크립트와 JAR 파일이 포함됩니다.
다음 실행 환경 중 하나에서 작업을 실행할 수 있습니다.
Apache Spark용 서버리스 일괄 워크로드 이는 간단한 독립형 작업 실행입니다.
Compute Engine 기반 Dataproc 클러스터에서 실행되는 작업 이 방법은 작업을 워크플로에 통합하는 데 유용할 수 있습니다.
작업 인수
인수 | 설명 | 필수 여부 | 기본값 |
---|---|---|---|
--project-ids |
일괄 워크로드를 검사할 단일 프로젝트 ID 또는 쉼표로 구분된 Google Cloud 프로젝트 ID 목록입니다. | 아니요 | 자격 확인 작업이 실행되는 프로젝트입니다. |
--regions |
지정된 프로젝트 내에서 검사할 단일 리전 또는 쉼표로 구분된 리전 목록입니다. | 아니요 | 지정된 프로젝트 내의 모든 리전입니다. |
--start-time |
배치를 필터링할 시작 날짜입니다. 이 날짜 (형식: YYYY-MM-DD) 또는 그 이후에 생성된 배치만 분석됩니다. | 아니요 | 시작일 필터가 적용되지 않았습니다. |
--end-time |
일괄 처리를 필터링할 종료일입니다. 이 날짜 (형식: YYYY-MM-DD) 또는 그 이전에 생성된 배치만 분석됩니다. | 아니요 | 종료일 필터가 적용되지 않습니다. |
--limit |
리전별로 분석할 최대 배치 수입니다. 가장 최근의 배치부터 분석됩니다. | 아니요 | 다른 필터 기준과 일치하는 모든 배치에 대한 분석이 실행됩니다. |
--output-gcs-path |
결과 파일이 작성될 Cloud Storage 경로 (예: gs://your-bucket/output/ )입니다. |
예 | 없음 |
--input-file |
일괄 분석을 위한 텍스트 파일의 Cloud Storage 경로입니다. 이 인수가 제공되면 다른 모든 범위 정의 인수 (--project-ids , --regions , --start-time , --end-time , --limit )를 재정의합니다. |
아니요 | 없음 |
자격 요건 작업 예
간단한 임시 분석을 실행하는 Apache Spark용 서버리스 일괄 작업 작업 인수는
--
구분 기호 뒤에 나열됩니다.gcloud dataproc batches submit pyspark gs://qualification-tool/performance-boost-qualification.py \ --project=PROJECT_ID \ --region=REGION \ --jars=gs://qualification-tool/dataproc-perfboost-qualification-1.2.jar \ -- \ --project-ids=COMMA_SEPARATED_PROJECT_IDS \ --regions=COMMA_SEPARATED_REGIONS \ --limit=MAX_BATCHES \ --output-gcs-path=gs://BUCKET
us-central1
리전의sample_project
에서 찾은 최대 50개의 최신 배치를 분석하는 Apache Spark용 서버리스 일괄 작업입니다. 결과는 Cloud Storage의 버킷에 기록됩니다. 작업 인수는--
구분 기호 뒤에 나열됩니다.gcloud dataproc batches submit pyspark gs://qualification-tool/performance-boost-qualification.py \ --project=PROJECT_ID \ --region=US-CENTRAL1 \ --jars=gs://qualification-tool/dataproc-perfboost-qualification-1.2.jar \ -- \ --project-ids=PROJECT_ID \ --regions=US-CENTRAL1 \ --limit=50 \ --output-gcs-path=gs://BUCKET/
대규모의 반복 가능하거나 자동화된 분석 워크플로에서 대량 분석을 위해 Dataproc 클러스터에 제출된 Compute Engine 기반 Dataproc 작업입니다. 작업 인수는 Cloud Storage의 BUCKET에 업로드되는 INPUT_FILE에 배치됩니다. 이 방법은 한 번의 실행으로 여러 프로젝트와 리전에서 다양한 기간 또는 일괄 한도를 검사하는 데 적합합니다.
gcloud dataproc jobs submit pyspark gs://qualification-tool/performance-boost-qualification.py \ --cluster=CLUSTER_NAME \ --region=REGION \ --jars=gs://qualification-tool/dataproc-perfboost-qualification-1.2.jar \ -- \ --input-file=gs://INPUT_FILE \ --output-gcs-path=gs://BUCKET
참고:
INPUT_FILE: 파일의 각 줄은 별도의 분석 요청을 나타내며,
-p PROJECT-ID -r REGION -s START_DATE -e END_DATE -l LIMITS
과 같이 한 글자 플래그와 그 값의 형식을 사용합니다.입력 파일 콘텐츠의 예:
-p project1 -r us-central1 -s 2024-12-01 -e 2024-12-15 -l 100 -p project2 -r europe-west1 -s 2024-11-15 -l 50
이러한 인수는 도구가 다음 두 범위를 분석하도록 지시합니다.
- 2025년 12월 1일과 2025년 12월 15일 사이에 생성된
us-central1
리전의 project1에 최대 100개의 배치 - 2025년 11월 15일 이후에 생성된
europe-west1
리전의 project2에서 최대 50개의 배치
- 2025년 12월 1일과 2025년 12월 15일 사이에 생성된
자격 요건 스크립트
분석하려는 특정 Spark 이벤트 로그의 직접 Cloud Storage 경로가 있는 경우 이 방법을 사용하세요. 이 접근 방식을 사용하려면 Cloud Storage의 이벤트 로그 파일에 대한 액세스 권한이 구성된 로컬 머신 또는 Compute Engine VM에서 셸 스크립트 run_qualification_tool.sh
를 다운로드하고 실행해야 합니다.
Apache Spark용 서버리스 일괄 워크로드 이벤트 파일에 대해 스크립트를 실행하려면 다음 단계를 따르세요.
1.분석할 Spark 이벤트 파일이 포함된 로컬 디렉터리에 run_qualification_tool.sh
을 복사합니다.
자격 스크립트를 실행하여 스크립트 디렉터리에 포함된 이벤트 파일 하나 또는 이벤트 파일 집합을 분석합니다.
./run_qualification_tool.sh -f EVENT_FILE_PATH/EVENT_FILE_NAME \ -o CUSTOM_OUTPUT_DIRECTORY_PATH \ -k SERVICE_ACCOUNT_KEY \ -x MEMORY_ALLOCATEDg \ -t PARALLEL_THREADS_TO_RUN
플래그 및 값:
-f
(필수): Spark 이벤트 파일 위치를 참고하여 Spark 워크로드 이벤트 파일을 찾습니다.EVENT_FILE_PATH (EVENT_FILE_NAME이 지정되지 않은 경우 필수): 분석할 이벤트 파일의 경로입니다. 제공되지 않으면 이벤트 파일 경로가 현재 디렉터리로 간주됩니다.
EVENT_FILE_NAME (EVENT_FILE_PATH이 지정되지 않은 경우 필수): 분석할 이벤트 파일의 이름입니다. 제공되지 않으면
EVENT_FILE_PATH
에서 재귀적으로 발견된 이벤트 파일이 분석됩니다.
-o
(선택사항): 제공되지 않으면 도구는 현재 디렉터리 아래에 출력 파일을 배치하기 위해output
디렉터리를 만들거나 기존 디렉터리를 사용합니다.- CUSTOM_OUTPUT_DIRECTORY_PATH: 출력 파일의 출력 디렉터리 경로입니다.
-k
(선택사항):- SERVICE_ACCOUNT_KEY: EVENT_FILE_PATH에 액세스하는 데 필요한 경우 JSON 형식의 서비스 계정 키입니다.
-x
(선택사항):- MEMORY_ALLOCATED: 도구에 할당할 메모리(GB)입니다. 기본적으로 이 도구는 시스템에서 사용 가능한 여유 메모리의 80% 와 사용 가능한 모든 머신 코어를 사용합니다.
-t
(선택사항):- PARALLEL_THREADS_TO_RUN: 도구가 실행할 병렬 스레드 수입니다. 기본적으로 이 도구는 모든 코어를 실행합니다.
명령어 사용 예시:
./run_qualification_tool.sh -f gs://dataproc-temp-us-east1-9779/spark-job-history \ -o perfboost-output -k /keys/event-file-key -x 34g -t 5
이 예에서 검증 도구는
gs://dataproc-temp-us-east1-9779/spark-job-history
디렉터리를 탐색하고 이 디렉터리와 하위 디렉터리에 포함된 Spark 이벤트 파일을 분석합니다. 디렉터리 액세스는/keys/event-file-key
에 제공됩니다. 이 도구는 실행에34 GB memory
를 사용하고5
병렬 스레드를 실행합니다.Spark 이벤트 파일 위치
Apache Spark용 서버리스 일괄 워크로드의 Spark 이벤트 파일을 찾으려면 다음 단계를 따르세요.
Cloud Storage에서 워크로드의
spark.eventLog.dir
를 찾아 다운로드합니다.spark.eventLog.dir
를 찾을 수 없는 경우spark.eventLog.dir
를 Cloud Storage 위치로 설정한 다음 워크로드를 다시 실행하고spark.eventLog.dir
를 다운로드합니다.
배치 작업에 Spark 기록 서버를 구성한 경우:
- Spark 기록 서버로 이동한 다음 워크로드를 선택합니다.
- 이벤트 로그 열에서 다운로드를 클릭합니다.
검증 도구 출력 파일
자격 요건 작업 또는 스크립트 분석이 완료되면 자격 요건 도구는 현재 디렉터리의 perfboost-output
디렉터리에 다음 출력 파일을 배치합니다.
AppsRecommendedForBoost.tsv
: 네이티브 쿼리 실행에 사용할 애플리케이션의 탭으로 구분된 목록입니다.UnsupportedOperators.tsv
: 네이티브 쿼리 실행과 함께 사용하지 않는 것이 권장되는 애플리케이션의 탭으로 구분된 목록입니다.
AppsRecommendedForBoost.tsv
출력 파일
다음 표는 샘플 AppsRecommendedForBoost.tsv
출력 파일의 콘텐츠를 보여줍니다. 분석된 각 애플리케이션에 대한 행이 포함됩니다.
샘플 AppsRecommendedForBoost.tsv
출력 파일:
applicationId | applicationName | rddPercentage | unsupportedSqlPercentage | totalTaskTime | supportedTaskTime | supportedSqlPercentage | recommendedForBoost | expectedRuntimeReduction |
---|---|---|---|---|---|---|---|---|
app-2024081/batches/083f6196248043938-000 | projects/example.com:dev/locations/us-central1 6b4d6cae140f883c0 11c8e |
0.00% | 0.00% | 548924253 | 548924253 | 100.00% | TRUE | 30.00% |
app-2024081/batches/60381cab738021457-000 | projects/example.com:dev/locations/us-central1 474113a1462b426bf b3aeb |
0.00% | 0.00% | 514401703 | 514401703 | 100.00% | TRUE | 30.00% |
열 설명:
applicationId
: Spark 애플리케이션의ApplicationID
입니다. 해당 일괄 워크로드를 식별하는 데 사용합니다.applicationName
: Spark 애플리케이션의 이름입니다.rddPercentage
: 애플리케이션의 RDD 작업 비율입니다. RDD 작업은 네이티브 쿼리 실행에서 지원되지 않습니다.unsupportedSqlPercentage:
네이티브 쿼리 실행에서 지원하지 않는 SQL 작업의 비율입니다.totalTaskTime
: 애플리케이션 실행 중에 실행된 모든 작업의 누적 작업 시간입니다.supportedTaskTime
: 네이티브 쿼리 실행에서 지원하는 총 작업 시간입니다.
다음 열은 네이티브 쿼리 실행이 배치 워크로드에 도움이 되는지 판단하는 데 도움이 되는 중요한 정보를 제공합니다.
supportedSqlPercentage
: 네이티브 쿼리 실행에서 지원하는 SQL 작업의 비율입니다. 비율이 높을수록 네이티브 쿼리 실행으로 애플리케이션을 실행하여 달성할 수 있는 런타임 감소가 커집니다.recommendedForBoost
:TRUE
인 경우 네이티브 쿼리 실행으로 애플리케이션을 실행하는 것이 좋습니다.recommendedForBoost
이FALSE
인 경우 일괄 워크로드에서 네이티브 쿼리 실행을 사용하지 마세요.expectedRuntimeReduction
: 네이티브 쿼리 실행으로 애플리케이션을 실행할 때 예상되는 애플리케이션 런타임 감소 비율입니다.
UnsupportedOperators.tsv
출력 파일입니다.
UnsupportedOperators.tsv
출력 파일에는 네이티브 쿼리 실행에서 지원하지 않는 워크로드 애플리케이션에 사용된 연산자 목록이 포함되어 있습니다.
출력 파일의 각 행에는 지원되지 않는 연산자가 나열됩니다.
열 설명:
unsupportedOperator
: 네이티브 쿼리 실행에서 지원하지 않는 연산자의 이름입니다.cumulativeCpuMs
: 연산자 실행 중에 소비된 CPU 밀리초 수입니다. 이 값은 애플리케이션에서 연산자의 상대적 중요도를 반영합니다.count
: 애플리케이션에서 연산자가 사용된 횟수입니다.
네이티브 쿼리 실행 사용
애플리케이션을 실행하는 일괄 워크로드, 대화형 세션 또는 세션 템플릿을 만들 때 네이티브 쿼리 실행 속성을 설정하여 애플리케이션에서 네이티브 쿼리 실행을 사용할 수 있습니다.
일괄 워크로드에서 네이티브 쿼리 실행 사용
Google Cloud 콘솔, Google Cloud CLI 또는 Dataproc API를 사용하여 일괄 워크로드에서 네이티브 쿼리 실행을 사용 설정할 수 있습니다.
콘솔
Google Cloud 콘솔을 사용하여 일괄 워크로드에서 네이티브 쿼리 실행을 사용 설정합니다.
Google Cloud 콘솔에서 다음을 수행합니다.
- Dataproc Batches로 이동
- 만들기를 클릭하여 배치 만들기 페이지를 엽니다.
다음 필드를 선택하고 작성하여 네이티브 쿼리 실행을 위한 일괄 처리를 구성합니다.
- 컨테이너:
- 런타임 버전:
1.2
,2.2
또는 그 이상의major.minor
버전 번호를 선택합니다. 지원되는 Apache Spark용 서버리스 런타임 버전을 참고하세요.
- 런타임 버전:
- 실행자 및 드라이버 등급 구성:
- 모든 등급 (드라이버 컴퓨팅 등급, 실행 컴퓨팅 등급)에 대해
Premium
를 선택합니다.
- 모든 등급 (드라이버 컴퓨팅 등급, 실행 컴퓨팅 등급)에 대해
- 속성:
Key
(속성 이름) 및Value
쌍을 입력하여 네이티브 쿼리 실행 속성을 지정합니다.키 값 spark.dataproc.runtimeEngine
원주민/토착민
- 컨테이너:
다른 일괄 워크로드 설정을 입력하거나 선택하거나 확인합니다. Spark 배치 워크로드 제출을 참고하세요.
제출을 클릭하여 Spark 배치 워크로드를 실행합니다.
gcloud
다음 gcloud CLI gcloud dataproc batches submit spark
명령어 플래그를 설정하여 네이티브 쿼리 실행을 위한 일괄 워크로드를 구성합니다.
gcloud dataproc batches submit spark \ --project=PROJECT_ID \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ --properties=spark.dataproc.runtimeEngine=native,spark.dataproc.driver.compute.tier=premium,spark.dataproc.executor.compute.tier=premium \ OTHER_FLAGS_AS_NEEDED
참고:
- PROJECT_ID: Google Cloud 프로젝트 ID입니다. 프로젝트 ID는 Google Cloud 콘솔 대시보드의 프로젝트 정보 섹션에 나열됩니다.
- REGION: 워크로드를 실행하는 데 사용할 수 있는 Compute Engine 리전입니다.
- OTHER_FLAGS_AS_NEEDED: Spark 배치 워크로드 제출을 참고하세요.
API
다음 Dataproc API 필드를 설정하여 네이티브 쿼리 실행을 위한 일괄 워크로드를 구성합니다.
RuntimeConfig.properties: 다음 네이티브 쿼리 실행 속성을 설정합니다.
"spark.dataproc.runtimeEngine":"native" "spark.dataproc.driver.compute.tier":"premium" "spark.dataproc.executor.compute".tier:"premium"
참고:
- 다른 배치 워크로드 API 필드를 설정하려면 Spark 배치 워크로드 제출을 참고하세요.
네이티브 쿼리 실행을 사용해야 하는 경우
다음 시나리오에서 네이티브 쿼리 실행을 사용하세요.
Parquet 및 ORC 파일에서 데이터를 읽는 Spark DataFrame API, Spark Dataset API, Spark SQL 쿼리 출력 파일 형식은 네이티브 쿼리 실행 성능에 영향을 미치지 않습니다.
네이티브 쿼리 실행 검증 도구에서 추천하는 워크로드
네이티브 쿼리 실행을 사용하지 말아야 하는 경우
다음 데이터 유형의 입력
- 바이트: ORC 및 Parquet
- 타임스탬프: ORC
- 구조체, 배열, 맵: Parquet
제한사항
다음 시나리오에서 네이티브 쿼리 실행을 사용 설정하면 예외, Spark 비호환성 또는 워크로드가 기본 Spark 엔진으로 대체될 수 있습니다.
대체
다음 실행에서 네이티브 쿼리 실행을 사용하면 워크로드가 Spark 실행 엔진으로 대체되어 회귀 또는 실패가 발생할 수 있습니다.
ANSI: ANSI 모드가 사용 설정된 경우 실행이 Spark로 대체됩니다.
대소문자 구분 모드: 네이티브 쿼리 실행은 Spark 기본 대소문자 구분 모드만 지원합니다. 대소문자 구분 모드가 사용 설정된 경우 잘못된 결과가 발생할 수 있습니다.
파티션을 나눈 테이블 스캔: 네이티브 쿼리 실행은 경로에 파티션 정보가 포함된 경우에만 파티션을 나눈 테이블 스캔을 지원하며, 그렇지 않으면 워크로드가 Spark 실행 엔진으로 대체됩니다.
호환되지 않는 동작
다음과 같은 경우 네이티브 쿼리 실행을 사용하면 호환되지 않는 동작이나 잘못된 결과가 발생할 수 있습니다.
JSON 함수: 네이티브 쿼리 실행은 작은따옴표가 아닌 큰따옴표로 묶인 문자열을 지원합니다. 작은따옴표를 사용하면 결과가 잘못됩니다.
get_json_object
함수와 함께 경로에 '*'를 사용하면NULL
이 반환됩니다.Parquet 읽기 구성:
true
로 설정된 경우에도 네이티브 쿼리 실행은spark.files.ignoreCorruptFiles
을 기본false
값으로 설정된 것으로 취급합니다.- 네이티브 쿼리 실행은
spark.sql.parquet.datetimeRebaseModeInRead
를 무시하고 Parquet 파일 콘텐츠만 반환합니다. 기존 하이브리드 (율리우스 그레고리) 달력과 소급 그레고리 달력의 차이는 고려되지 않습니다. 스파크 결과는 다를 수 있습니다.
NaN
: 지원되지 않습니다. 예를 들어 숫자 비교에서NaN
를 사용하면 예기치 않은 결과가 발생할 수 있습니다.Spark 열 형식 읽기: Spark 열 형식 벡터가 네이티브 쿼리 실행과 호환되지 않으므로 치명적인 오류가 발생할 수 있습니다.
스필: 셔플 파티션이 큰 수로 설정되면 디스크로 스필 기능이
OutOfMemoryException
을 트리거할 수 있습니다. 이 경우 파티션 수를 줄이면 이 예외를 없앨 수 있습니다.