이 섹션의 정보를 사용하여 Athena for Spark 테이블 오류를 해결합니다.
테이블을 생성할 때 경로 오류를 생성할 수 없습니다.
오류 메시지: IllegalArgumentException: 빈 문자열에서 경로를 생성할 수 없습니다.
원인: 이 오류는 Athena에서 Apache Spark를 사용하여 AWS Glue 데이터베이스에서 테이블을 생성하고, 데이터베이스에 빈 LOCATION
속성이 있는 경우에 발생할 수 있습니다.
권장 솔루션: 자세한 내용 및 해결 방법은 테이블을 생성할 때 잘못된 인수 예외 발생 단원을 참조하세요.
AWS Glue 테이블을 쿼리할 때 AccessDeniedException 예외 발생
오류 메시지: pyspark.sql.utils.AnalysisException: Unable to verify existence of default database: com.amazonaws.services.glue.model.AccessDeniedException: User: arn:aws:sts::
aws-account-id
:assumed-role/AWSAthenaSparkExecutionRole-unique-identifier
/AthenaExecutor-unique-identifier
is not authorized to perform: glue:GetDatabase on resource: arn:aws:glue:aws-region
:aws-account-id
:catalog because no identity-based policy allows the glue:GetDatabase action (Service: AWSGlue; Status Code: 400; Error Code: AccessDeniedException; Request ID: request-id
; Proxy: null)
원인: Spark 지원 작업 그룹의 실행 역할에 AWS Glue 리소스에 액세스할 수 있는 권한이 없습니다.
권장 솔루션: 이 문제를 해결하려면 실행 역할에 AWS Glue 리소스에 대한 액세스 권한을 부여한 다음 실행 역할에 액세스 권한을 부여하도록 Amazon S3 버킷 정책을 편집합니다.
다음 절차에서는 이 단계를 자세히 설명합니다.
실행 역할에 AWS Glue 리소스에 대한 액세스 권한을 부여하려면
https://console.aws.amazon.com/athena/
에서 Athena 콘솔을 엽니다. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.
-
Athena 콘솔 탐색 창에서 작업 그룹(Workgroups)을 선택합니다.
-
작업 그룹(Workgroups) 페이지에서 보려는 작업 그룹의 링크를 선택합니다.
-
작업 그룹에 대한 Overview Details(개요 세부 정보) 페이지에서 Role ARN(역할 ARN) 링크를 선택합니다. 링크를 클릭하면 IAM 콘솔에서 Simple 실행 역할이 열립니다.
-
Permissions policies(권한 정책) 섹션에서 연결된 역할 정책 이름을 선택합니다.
-
Edit policy(정책 편집)를 선택한 다음 JSON을 선택합니다.
-
역할에 AWS Glue 액세스 권한을 추가합니다. 일반적으로
glue:GetDatabase
및glue:GetTable
작업에 대한 권한을 추가합니다. IAM 역할 구성에 대한 자세한 내용은 IAM 사용 설명서의 IAM 자격 증명 권한 추가 및 제거를 참조하세요. -
Review policy(정책 검토)를 선택한 다음 Save changes(변경 사항 저장)를 선택합니다.
-
실행 역할에 액세스 권한을 부여하도록 Amazon S3 버킷 정책을 편집합니다. 버킷과 버킷 내 객체 모두에 대한 액세스 권한을 역할에 부여해야 합니다. 작업 단계는 Amazon Simple Storage Service 사용 설명서의 Amazon S3 콘솔을 사용하여 버킷 정책 추가 단원을 참조하세요.