Carregando Dados de um Arquivo em um DataFrame
Deslize para mostrar o menu
O objeto spark.read é o ponto de entrada para a leitura de dados externos em um DataFrame do Spark. Ele oferece suporte a vários formatos de arquivo, incluindo CSV, JSON, Parquet e Delta, e permite definir como o Spark deve interpretar os arquivos.
Na Seção 2, você fez o upload de um arquivo CSV para o ambiente Databricks. Agora, você aprenderá como "carregar" esse arquivo do armazenamento e trazê-lo para a memória do cluster como um DataFrame usando Python. Este é o primeiro passo em praticamente todo pipeline de engenharia de dados.
A sintaxe do spark.read
Para carregar um arquivo, utilizamos uma cadeia específica de comandos. A estrutura básica é a seguinte:
df = spark.read.format("csv").option("header", "true").load("path/to/file")
- format: informa ao Spark o tipo de arquivo (csv, json, parquet);
- option("header", "true"): instrui o Spark a usar a primeira linha do arquivo como nomes das colunas;
- load: localização específica do arquivo dentro do Databricks.
Inferência de Esquema
Por padrão, o Spark assume que toda coluna em um CSV é uma string (texto). Para tornar os dados mais úteis, adiciona-se outra opção: .option("inferSchema", "true"). Quando essa opção está habilitada, o Spark faz uma análise rápida dos dados e identifica automaticamente quais colunas são inteiros, decimais ou booleanos. Isso elimina o trabalho manual de definir os tipos de dados.
Localizando o Caminho do Arquivo
Para ler um arquivo, é necessário conhecer seu caminho. Na guia Catálogo ou Workspace, localize o arquivo enviado, clique nos três pontos (reticências) ao lado dele e selecione "Copiar caminho". No Databricks moderno, se você enviou o arquivo pela interface de Ingestão de Dados, como feito no Capítulo 2.6, os dados já estão salvos como uma tabela, que pode ser lida usando:
df = spark.read.table("main.default.sample_sales_records")
No entanto, se você estiver lendo o arquivo bruto diretamente de um Volume, utilize o caminho do arquivo:
df = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my_volume/sales_data.csv")
Verificando o Carregamento
Após executar o comando de carregamento, é uma boa prática verificar os dados. Recomenda-se seguir imediatamente o comando de leitura com: display(df)
Isso confirma que os dados foram carregados corretamente na memória do cluster, que os cabeçalhos estão na posição correta e que os tipos de dados parecem adequados. Neste estágio, os dados estão em um objeto temporário chamado df, e você está pronto para começar a transformá-los.
1. Por que você deve usar a configuração .option("inferSchema", "true") ao ler um CSV?
2. Qual comando é usado para trazer uma tabela existente do Catálogo para um DataFrame em Python?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo