Partilhar via


Tutorial Parte 1: Ingerir dados em uma casa de lago do Microsoft Fabric usando o Apache Spark

Neste tutorial, você ingerirá dados no Fabric lakehouses no formato delta lake. Alguns termos importantes para entender:

  • Lakehouse - Um lakehouse é uma coleção de arquivos/pastas/tabelas que representam uma base de dados sobre um lago de dados, utilizada pelo motor Spark e pelo motor SQL para processamento de big data, e inclui capacidades melhoradas para transações ACID ao utilizar tabelas formatadas Delta de código aberto.

  • Delta Lake - O Delta Lake é uma camada de armazenamento de código aberto que traz transações ACID, gerenciamento de metadados escaláveis e processamento de dados em lote e streaming para o Apache Spark. Uma tabela Delta Lake é um formato de tabela de dados que expande os arquivos de dados do Parquet com um registo de transações baseado em arquivo para transações ACID e gerenciamento escalável de metadados.

  • de Conjuntos de Dados Abertos do Azure são conjuntos de dados públicos selecionados que você pode usar para adicionar recursos específicos de cenários a soluções de aprendizado de máquina para modelos mais precisos. Os conjuntos de dados abertos estão na nuvem no Armazenamento do Microsoft Azure e podem ser acessados por vários métodos, incluindo Apache Spark, API REST, Data factory e outras ferramentas.

Neste tutorial, você usa o Apache Spark para:

  • Leia dados de contêineres de Conjuntos de Dados Abertos do Azure.
  • Escreva dados em uma tabela delta do Fabric lakehouse.

Pré-requisitos

  • Obtenha uma assinatura Microsoft Fabric. Ou inscreva-se para obter uma avaliação gratuita do Microsoft Fabric.

  • Inicie sessão no Microsoft Fabric.

  • Use o seletor de experiência no canto inferior esquerdo da página inicial para alternar para o Fabric.

    Captura de tela do menu do seletor de experiências, mostrando onde selecionar Ciência de Dados.

  • Adicione um lakehouse a este bloco de anotações. Você vai baixar dados de um blob público e depois armazená-los no lakehouse.

Acompanhe no caderno

1-ingest-data.ipynb é o caderno de anotações que acompanha este tutorial.

Dados de rotatividade de clientes bancários

O conjunto de dados contém o status de churn de 10.000 clientes. Ele também inclui atributos que podem afetar a rotatividade, como:

  • Pontuação de crédito
  • Localização geográfica (Alemanha, França, Espanha)
  • Sexo (masculino, feminino)
  • Idade
  • Titularidade (anos de clientela do banco)
  • Saldo da conta
  • Salário estimado
  • Número de produtos que um cliente comprou através do banco
  • Estado do cartão de crédito (quer o cliente tenha ou não um cartão de crédito)
  • Estatuto de membro ativo (cliente de um banco ativo ou não)

O conjunto de dados também inclui colunas como número de linha, ID do cliente e sobrenome do cliente, que não devem ter impacto na decisão do cliente de deixar o banco.

O evento que define a desistência do cliente é o encerramento da conta bancária do cliente. A coluna exited no conjunto de dados refere-se ao abandono do cliente. Não há muito contexto disponível sobre esses atributos, então você tem que prosseguir sem ter informações básicas sobre o conjunto de dados. O objetivo é entender como esses atributos contribuem para o status exited.

Linhas de exemplo do conjunto de dados:

"ID do cliente" "Apelido" "Pontuação de crédito" "Geografia" "Género" "Idade" Estabilidade "Equilíbrio" NúmeroDeProdutos "HasCrCard" ÉMembroAtivo "Salário estimado" "Saiu"
15634602 Hargrave 619 França Feminino 42 2 0.00 1 1 1 101348.88 1
15647311 Colina 608 Espanha Feminino 41 1 83807.86 1 0 1 112542.58 0

Faça o download do conjunto de dados e faça o upload para lakehouse

Dica

Ao definir os seguintes parâmetros, você pode usar este bloco de anotações com diferentes conjuntos de dados facilmente.

IS_CUSTOM_DATA = False  # if TRUE, dataset has to be uploaded manually

DATA_ROOT = "/lakehouse/default"
DATA_FOLDER = "Files/churn"  # folder with data files
DATA_FILE = "churn.csv"  # data file name

Este código faz download de uma versão publicamente disponível do conjunto de dados e, em seguida, armazena-o num Fabric lakehouse.

Importante

Certifique-se de adicionar um "lakehouse" ao caderno antes de executá-lo. Se não o fizer, haverá um erro.

import os, requests
if not IS_CUSTOM_DATA:
# Download demo data files into lakehouse if not exist
    remote_url = "https://synapseaisolutionsa.blob.core.windows.net/public/bankcustomerchurn"
    file_list = [DATA_FILE]
    download_path = f"{DATA_ROOT}/{DATA_FOLDER}/raw"

    if not os.path.exists("/lakehouse/default"):
        raise FileNotFoundError(
            "Default lakehouse not found, please add a lakehouse and restart the session."
        )
    os.makedirs(download_path, exist_ok=True)
    for fname in file_list:
        if not os.path.exists(f"{download_path}/{fname}"):
            r = requests.get(f"{remote_url}/{fname}", timeout=30)
            with open(f"{download_path}/{fname}", "wb") as f:
                f.write(r.content)
    print("Downloaded demo data files into lakehouse.")

Você usará os dados que acabou de ingerir: