Partilhar via


Tutorial Parte 1: Usar o Apache Spark para ingerir dados em um lago do Microsoft Fabric

Este tutorial insere dados em Fabric lakehouses no formato delta lake. Definimos aqui alguns termos importantes:

  • Lakehouse - Um lakehouse é uma coleção de arquivos, pastas ou tabelas que representam um banco de dados num data lake. O mecanismo Spark e o mecanismo SQL usam recursos lakehouse para processamento de big data. Quando você usa tabelas de código aberto formatadas em Delta, esse processamento inclui recursos aprimorados de transação ACID.

  • 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. Como um formato de tabela de dados, o Delta Lake estende os arquivos de dados do Parquet com um log de transações baseado em arquivo para transações ACID e gerenciamento de metadados escaláveis.

  • Os Conjuntos de Dados Abertos do Azure são conjuntos de dados públicos com curadoria que adicionam recursos específicos do cenário a soluções de aprendizado de máquina. Isso leva a modelos mais precisos. Os Conjuntos de Dados Abertos são recursos de nuvem que residem no Armazenamento do Microsoft Azure. Apache Spark, API REST, Data factory e outras ferramentas podem acessar Open Datasets.

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.

  • Altera para o Fabric usando o alternador de experiência no canto inferior esquerdo da sua página inicial.

    Captura de ecrã que mostra a seleção de Fabric no menu do comutador de experiências.

  • Adicione um lakehouse a este bloco de anotações. Neste tutorial, você primeiro baixa dados de um blob público. Em seguida, os dados são armazenados nesse recurso lakehouse.

Acompanhe utilizando um caderno

O notebook 1-ingest-data.ipynb acompanha este tutorial.

Dados de rotatividade de clientes bancários

O conjunto de dados contém informações de estado de churn para 10.000 clientes. Também inclui atributos que podem influenciar a rotatividade - por exemplo:

  • Pontuação de crédito
  • Localização geográfica (Alemanha, França, Espanha)
  • Sexo (masculino, feminino)
  • Idade
  • Titularidade (número de anos em que o cliente foi cliente desse 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 (quer o cliente tenha ou não um estatuto de cliente bancário ativo)

O conjunto de dados também inclui estas colunas:

  • número da linha
  • ID do cliente
  • Apelido do Cliente

Estas colunas não devem ter qualquer influência na decisão de um cliente de sair do banco.

O encerramento de uma conta bancária de um cliente define a rotatividade desse cliente. A coluna do exited conjunto de dados refere-se ao abandono do cliente. Pouco contexto sobre esses atributos está disponível, portanto, você deve prosseguir sem informações básicas sobre o conjunto de dados. Nosso objetivo é entender como esses atributos contribuem para o exited status.

Exemplos de linhas de 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 facilmente usar este bloco de anotações com diferentes conjuntos de dados:

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

O trecho de código a seguir baixa uma versão disponível publicamente do conjunto de dados e, em seguida, armazena esse recurso em um lago de malha:

Importante

Certifique-se de adicionar um lakehouse ao bloco de anotações antes de executá-lo. Se não o fizer, registar-se-á um erro.

import os, requests
if not IS_CUSTOM_DATA:
# Download demo data files into lakehouse if not exist
    remote_url = "https://synapseaisolutionsa.z13.web.core.windows.net/data/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.")

Utiliza os dados que ingeriu recentemente: