本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對資料表錯誤進行故障診斷
使用本節中的資訊來疑難排解 Athena for Spark 資料表錯誤。
建立資料表時無法建立路徑錯誤
錯誤訊息:IllegalArgumentException: Cannot create a path from an empty string.
(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 主控台中開啟 Spark 執行角色。
-
在 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 主控台新增儲存貯體政策。