Escrevendo os Dados Processados em uma Tabela
Deslize para mostrar o menu
A escrita de dados é o processo de mover um DataFrame da memória temporária do cluster para o armazenamento permanente no Catálogo. Ao utilizar o método saveAsTable(), garante-se que os resultados limpos e agregados sejam preservados e acessíveis para outros usuários e ferramentas.
Tudo o que foi feito até agora ocorreu "em memória". Se o cluster fosse desligado neste momento, os DataFrames transformados desapareceriam. Para tornar o trabalho permanente, é necessário gravar os dados novamente no Lakehouse. No Databricks, a forma padrão de fazer isso é salvando o DataFrame como uma Delta Table.
A sintaxe do saveAsTable()
Para salvar o trabalho, encadeia-se o método write ao DataFrame. A abordagem mais direta é:
# Save the 'summary_df' we created earlier as a permanent table
summary_df.write.mode("overwrite").saveAsTable("workspace.default.diamonds_summary”)
- write: acessa a interface de gravação do DataFrame;
- mode("overwrite"): instrui o Databricks sobre o que fazer caso já exista uma tabela com esse nome. "Overwrite" substitui os dados antigos pelos novos. Outras opções incluem "append" (para adicionar novas linhas ao final da tabela existente);
- saveAsTable: especifica o nome em três partes (
catalog.schema.table) onde os dados serão armazenados.
Delta Lake: O Formato Padrão
Ao utilizar saveAsTable, o Databricks salva automaticamente os dados no formato Delta. Como discutido na Seção 1, o Delta Lake oferece confiabilidade. Ele garante que, mesmo que o cluster falhe no meio de uma operação de "write", sua tabela não será corrompida. Também permite o recurso de "Time Travel", possibilitando visualizar versões anteriores da tabela caso ocorra algum erro.
Verificando a Escrita no Catálogo
Após a execução do comando, é importante verificar se os dados foram gravados corretamente:
- Navegar até a guia Catálogo na barra lateral à esquerda;
- Acessar o catálogo
maine o schemadefault; - Procurar pelo nome da nova tabela (por exemplo,
regional_summary); - É possível clicar na tabela para visualizar seu schema, dados de exemplo e metadados, como data de criação e autor.
Leitura da Tabela Salva
Uma vez que a tabela está no Catálogo, qualquer usuário autorizado pode acessá-la sem precisar do seu notebook. Basta executar uma consulta SQL ou utilizar spark.table() para carregá-la em seu próprio ambiente:
# In a new notebook, anyone can now access your processed data
new_df = spark.table("main.default.regional_summary")
Melhor Prática: Limpeza
Após salvar seus resultados finais em uma tabela permanente, é uma prática profissional encerrar seu cluster ou pelo menos "Limpar Estado". Como seus dados agora estão armazenados com segurança no Catálogo, não é mais necessário manter os DataFrames temporários ocupando espaço na RAM do cluster.
1. Qual "mode" você deve usar se quiser substituir uma tabela existente por dados totalmente novos do seu DataFrame?
2. Qual é o principal benefício de salvar um DataFrame usando saveAsTable()?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo