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.
- 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.")
Conteúdos relacionados
Você usará os dados que acabou de ingerir: