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 um banco de dados sobre um data lake usado pelo mecanismo Spark e pelo mecanismo SQL para processamento de big data e que inclui recursos aprimorados para transações ACID ao usar as tabelas formatadas Delta de código aberto.

  • Delta Lake - 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 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 você pode usar para adicionar recursos específicos do cenário 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 do Microsoft Fabric. Ou inscreva-se para uma avaliação gratuita do Microsoft Fabric.

  • Entre no Microsoft Fabric.

  • Use o seletor de experiência no lado esquerdo da sua página inicial para alternar para a experiência Synapse Data Science.

    Screenshot of the experience switcher menu, showing where to select Data Science.

  • Adicione uma casa de lago a este bloco de anotações. Você estará baixando dados de um blob público e, em seguida, armazenando os dados na casa do lago.

Acompanhe no caderno

1-ingest-data.ipynb é o notebook que acompanha este tutorial.

Para abrir o bloco de anotações que acompanha este tutorial, siga as instruções em Preparar seu sistema para tutoriais de ciência de dados, para importar o bloco de anotações para seu espaço de trabalho.

Se preferir copiar e colar o código desta página, pode criar um novo bloco de notas.

Certifique-se de anexar um lakehouse ao bloco de anotações antes de começar a executar o código.

Dados de churn bancário

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)
  • Antiguidade
  • 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 rotatividade do cliente é o fechamento 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 exited status.

Linhas de exemplo do conjunto de dados:

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

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

Gorjeta

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

Esse código baixa uma versão disponível publicamente do conjunto de dados e, em seguida, armazena-o em um lago de malha.

Importante

Certifique-se de adicionar uma casa de lago ao bloco de anotações 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: