Ir para conteúdo
  • 0

Problema ao salvar tabela externa


Pergunta

  • Alunos
Postado (editado)

Galera, estou rodando esse código, para salvar uma tabela no banco dentro da camada gold, mas só me retorna essa mensagem de erro que não consegui ainda entender como corrigir

socios_df.write.format("parquet").option('path',f"{camada_gold}/SOCIOS_external").saveAsTable("base_cnpj.socios_table")

Erro:

AnalysisException: [UC_FILE_SCHEME_FOR_TABLE_CREATION_NOT_SUPPORTED] Creating table in Unity Catalog with file scheme bfs is not supported. Instead, please create a federated data source connection using the CREATE CONNECTION command for the same table provider, then create a catalog based on the connection with a CREATE FOREIGN CATALOG command to reference the tables therein.

image.png.2ebffb5823223912d3b1c772ec3bd6c4.png

Editado por Iesus Magdiel Gonçalves Franco
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
  • Alunos
Em 11/05/2024 em 12:16, Iesus Magdiel Gonçalves Franco disse:

Galera, estou rodando esse código, para salvar uma tabela no banco dentro da camada gold, mas só me retorna essa mensagem de erro que não consegui ainda entender como corrigir

socios_df.write.format("parquet").option('path',f"{camada_gold}/SOCIOS_external").saveAsTable("base_cnpj.socios_table")

Erro:

AnalysisException: [UC_FILE_SCHEME_FOR_TABLE_CREATION_NOT_SUPPORTED] Creating table in Unity Catalog with file scheme bfs is not supported. Instead, please create a federated data source connection using the CREATE CONNECTION command for the same table provider, then create a catalog based on the connection with a CREATE FOREIGN CATALOG command to reference the tables therein.

image.png.2ebffb5823223912d3b1c772ec3bd6c4.png

Fala mano @Iesus Magdiel Gonçalves Franco, joguei seu problema no GPT, veja se te ajuda ou te da uma direção.
 

Esse erro está relacionado ao uso do Unity Catalog no Databricks, especificamente quando você tenta criar uma tabela utilizando um caminho de sistema de arquivos BFS (Blob File System), que não é suportado diretamente pelo Unity Catalog. O erro que você recebeu é:

AnalysisException: [UC FILE SCHEME FOR TABLE CREATION NOT SUPPORTED] Creating table in Unity Catalog with file scheme bfs is not supported. Instead, please create a federated data source connection using the CREATE CONNECTION command for the same table provider, then create a catalog based on the connection with a CREATE FOREIGN CATALOG command to reference the tables therein.
 

Para corrigir esse problema, você deve seguir as instruções fornecidas na mensagem de erro e criar uma conexão federada para referenciar os dados corretamente. Aqui estão os passos detalhados para resolver isso:

  1. Criar uma conexão federada: Primeiro, crie uma conexão federada usando o comando CREATE CONNECTION. Isso cria uma conexão que o Unity Catalog pode usar para acessar os dados armazenados no caminho do BFS.

CREATE CONNECTION my_data_lake
USING 'abfss://<your-container>@<your-storage-account>.dfs.core.windows.net/';

Criar um catálogo baseado na conexão: Em seguida, use o comando CREATE FOREIGN CATALOG para criar um catálogo que referencia essa conexão.

CREATE FOREIGN CATALOG my_catalog
USING CONNECTION my_data_lake;


Referenciar a tabela: Depois de criar o catálogo, você pode referenciar suas tabelas usando este catálogo.

CREATE TABLE my_catalog.base_cnpj.socios_table
USING PARQUET
LOCATION 'abfss://<your-container>@<your-storage-account>.dfs.core.windows.net/<path-to-your-parquet-file>';

 

Exemplo Completo

Se os caminhos e detalhes específicos para seu armazenamento fossem, por exemplo:

  • Container: datalake-container
  • Conta de armazenamento: mystorageaccount
  • Caminho para o arquivo Parquet: gold/SOCIOS_external

Você faria o seguinte:

-- Crie a conexão federada
CREATE CONNECTION my_data_lake
USING 'abfss://datalake-container@mystorageaccount.dfs.core.windows.net/';

-- Crie o catálogo estrangeiro baseado na conexão
CREATE FOREIGN CATALOG my_catalog
USING CONNECTION my_data_lake;

-- Crie a tabela referenciando o arquivo Parquet
CREATE TABLE my_catalog.base_cnpj.socios_table
USING PARQUET
LOCATION 'abfss://datalake-container@mystorageaccount.dfs.core.windows.net/gold/SOCIOS_external';

Certifique-se de substituir <your-container>, <your-storage-account>, e <path-to-your-parquet-file> pelos valores específicos do seu ambiente. Isso deve resolver o problema de criar a tabela no Unity Catalog usando o caminho BFS.

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...