對資料表錯誤進行故障診斷 - Amazon Athena

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

對資料表錯誤進行故障診斷

使用本節中的資訊來疑難排解 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 資源的存取權
  1. 前往 https://console.aws.amazon.com/athena/ 開啟 Athena 主控台。

  2. 如果未顯示主控台的導覽窗格,請選擇左側的展開選單。

    選擇展開選單。
  3. 在 Athena 主控台導覽窗格中,選擇 Workgroups (工作群組)。

  4. Workgroups (工作群組) 頁面上,請選擇您要檢視的工作群組連結。

  5. 在工作群組的 Overview Details (概觀詳細資訊) 頁面上,選擇 Role ARN (角色 ARN) 連結。此連結會在 IAM 主控台中開啟 Spark 執行角色。

  6. Permissions policies (許可政策) 區段中,選擇連結角色政策名稱。

  7. 選擇 Edit policy (編輯政策),然後選擇 JSON

  8. 新增角色的 AWS Glue 存取權。通常,您可以為 glue:GetDatabaseglue:GetTable 動作新增許可。如需有關設定 IAM 角色的詳細資訊,請參閱《IAM 使用者指南》中的新增和移除 IAM 身分許可

  9. 選擇 Review policy (檢閱政策),然後選擇 Save changes (儲存變更)

  10. 編輯 Amazon S3 儲存貯體政策,以授予執行角色存取權。請注意,您必須授予角色儲存貯體和儲存貯體中的物件存取權。如需相關步驟,請參閱《Amazon Simple Storage Service 使用者指南》中的使用 Amazon S3 主控台新增儲存貯體政策