

# Solucionar erros de tabela
<a name="notebooks-spark-troubleshooting-tables"></a>

Use as informações desta seção para solucionar erros de tabela do Athena para Spark.

## Não é possível criar um caminho, ocorre um erro ao criar uma tabela
<a name="notebooks-spark-troubleshooting-tables-illegal-argument-exception"></a>

**Mensagem de erro**: IllegalArgumentException: Cannot create a path from an empty string (IllegalArgumentException: não é possível criar um caminho usando uma string vazia).

**Causa**: esse erro pode ocorrer quando você usa o Apache Spark no Athena para criar uma tabela em um banco de dados do AWS Glue, e o banco de dados tem uma propriedade `LOCATION` vazia. 

**Solução sugerida**: para obter mais informações e soluções, consulte [Exceção para argumento inválido ao criar uma tabela](notebooks-spark-known-issues.md#notebooks-spark-known-issues-illegal-argument-exception).

## AccessDeniedException ao consultar tabelas do AWS Glue
<a name="notebooks-spark-troubleshooting-tables-glue-access-denied"></a>

**Mensagem de erro**: 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) (pyspark.sql.utils.AnalysisException: não é possível verificar a existência do banco de dados padrão: com.amazonaws.services.glue.model.AccessDeniedException: o usuário: arn:aws:sts::aws-account-id:assumed-role/AWSAthenaSparkExecutionRole-unique -identifier/AthenaExecutor-unique-identifier não está autorizado a executar: glue:GetDatabase no recurso: arn:aws:glue:aws-region:aws-account-id:catalog porque nenhuma política baseada em identidade permite a ação glue:GetDatabase (serviço: AWSGlue; código de status: 400; código de erro: AccessDeniedException; ID da solicitação: request-id; proxy: nulo).

**Causa**: o perfil de execução do grupo de trabalho habilitado para Spark não tem permissões para acessar os recursos do AWS Glue.

**Solução sugerida**: para resolver esse problema, conceda ao perfil de execução acesso aos recursos do AWS Glue e, em seguida, edite a política de bucket do Amazon S3 para conceder acesso ao perfil de execução.

O procedimento a seguir descreve essas etapas com mais detalhes.

**Para conceder acesso aos recursos do AWS Glue ao perfil de execução**

1. Abra o console do Athena em [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Se o painel de navegação do console não estiver visível, escolha o menu de expansão à esquerda.  
![\[Escolha o menu de expansão.\]](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/nav-pane-expansion.png)

1. No painel de navegação do console do Athena, escolha **Workgroups** (Grupos de trabalho).

1. Na página **Workgroups** (Grupos de trabalho), escolha o link do grupo de trabalho que você deseja visualizar.

1. Na página **Overview Details** (Detalhes gerais) para o grupo de trabalho, escolha o link **Role ARN** (ARN do perfil). O link abrirá o perfil de execução do Spark no console do IAM.

1. Na seção **Permissions policies** (Políticas de permissões), escolha o nome da política de perfil vinculada.

1. Escolha **Edit policy** (Editar política) e, em seguida, selecione **JSON**.

1. Adicione o acesso ao AWS Glue para o perfil. Normalmente, você adiciona permissões para as ações `glue:GetDatabase` e `glue:GetTable`. Para obter mais informações sobre como configurar perfis do IAM, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no Guia do usuário do IAM. 

1. Selecione **Review policy (Revisar política)** e, em seguida, escolha, **Save changes (Salvar alterações)**.

1. Edite a política de bucket do Amazon S3 para conceder acesso ao perfil de execução. Observe que é necessário conceder ao perfil acesso tanto ao bucket quanto aos objetos do bucket. Para visualizar as etapas, consulte [Adicionar uma política de bucket usando o console do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) no Guia do usuário do Amazon Simple Storage Service.