Olá, Leonardo!
Esse erro ocorre porque o Unity Catalog não permite criar tabelas usando caminhos dbfs:/ diretamente. Atualmente, devido à uma atualização no UC, tabelas só podem ser armazenadas em Volumes gerenciados ou em External Locations configuradas com permissões adequadas.
Para resolver, você pode criar um Volume dentro de um catálogo e schema do Unity Catalog e, em seguida, apontar o LOCATION da tabela para o caminho desse Volume.
1. Criar o catálogo e o schema
Antes de criar o Volume, execute em uma célula SQL o comando de criação de catalog e schema. A sintaxe é:
CREATE CATALOG IF NOT EXISTS <nome_do_catalogo>;
CREATE SCHEMA IF NOT EXISTS <nome_do_catalogo>.<nome_do_schema>;
Substitua pelos nomes que você deseja. Por exemplo:
CREATE CATALOG IF NOT EXISTS dbaluradatabricks;
CREATE SCHEMA IF NOT EXISTS dbaluradatabricks.meu_schema;
O catálogo é a estrutura de mais alto nível no Unity Catalog, e dentro dele ficam os schemas, que organizam volumes e tabelas.
2. Criar o Volume
Agora, crie o Volume onde os arquivos da tabela serão armazenados. A sintaxe é:
CREATE VOLUME IF NOT EXISTS <catalog>.<schema>.<volume_name>;
Usando o exemplo acima:
CREATE VOLUME IF NOT EXISTS dbaluradatabricks.meu_schema.meu_volume;
No seu código basta substituir 'dbfs:/FileStore/tables/aula-databricks/usuarios/' pelo caminho do seu Volume.Por exemplo, com os comandos que usei anteriormente o meu ficaria: 'dbfs:/Volumes/dbaluradatabricks/meu_schema/meu_volume/'.
💡 Dica: O Databricks oferece uma demonstração interativa mostrando como Volumes funcionam e como criá-los pela própria interface (uma alternativa ao comando sql). O layout é bem parecido com o atual, mas em vez da aba Data, você deve acessar Catalog. Vale muito a pena explorar. Basta clicar em “Next” para acompanhar o passo a passo:
Caso tenha dificuldades em algum passo, fico à disposição.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!