Tutorial Parte 1: Ingesta de datos en una instancia de Microsoft Fabric Lakehouse mediante Apache Spark
En este tutorial, ingerirá datos en fabric lakehouses en formato delta lake. Algunos términos importantes para comprender:
Lakehouse: Un lakehouse es una colección de archivos, carpetas o tablas que representan una base de datos sobre un data lake utilizado por los motores de Spark y SQL para el procesamiento de big data e incluye funcionalidades mejoradas para las transacciones ACID al utilizar tablas en formato Delta de código abierto.
Delta Lake: Delta Lake es una capa de almacenamiento de código abierto que aporta transacciones ACID, administración escalable de metadatos y procesamiento de datos por lotes y streaming a Apache Spark. Una tabla de lago Delta es un formato de tabla de datos que extiende archivos de datos Parquet con un registro de transacciones basado en archivos para transacciones ACID y control de metadatos escalables.
azure Open Datasets son conjuntos de datos públicos mantenidos que puede usar para agregar características específicas del escenario a soluciones de aprendizaje automático para modelos más precisos. Los conjuntos de datos abiertos se encuentran en la nube en Microsoft Azure Storage y se puede acceder a ellos mediante varios métodos, como Apache Spark, LA API REST, Data Factory y otras herramientas.
En este tutorial, usará Apache Spark para:
- Lee datos de contenedores de Azure Open Datasets.
- Escribir datos en una tabla delta de Fabric Lakehouse.
Prerrequisitos
Obtenga una suscripción a Microsoft Fabric. También puede registrarse para obtener una evaluación gratuita de Microsoft Fabric.
Inicie sesión en Microsoft Fabric.
Use el conmutador de experiencia en la parte inferior izquierda de la página principal para cambiar a Fabric.
- Agregue una instancia de Lakehousea este cuaderno. Descargará datos de un blob público y, a continuación, almacenará los datos en lakehouse.
Seguir en el cuaderno
1-ingest-data.ipynb es el cuaderno que acompaña a este tutorial.
A fin de abrir el cuaderno complementario para este tutorial, siga las instrucciones de Preparación del sistema para los tutoriales de ciencia de datos, para importar el cuaderno al área de trabajo.
Si prefiere copiar y pegar el código de esta página, puede crear un cuaderno nuevo.
Asegúrese de adjuntar una instancia de lakehouse al cuaderno antes de empezar a ejecutar código.
Datos de abandono bancario
El conjunto de datos contiene el estado de abandono de 10,000 clientes. También incluye atributos que podrían afectar a la renovación, como:
- Puntuación de crédito
- Ubicación geográfica (Alemania, Francia, España)
- Género (masculino, femenino)
- Edad
- Antigüedad (años de ser cliente del banco)
- Saldo de la cuenta
- Salario estimado
- Número de productos que un cliente ha adquirido a través del banco
- Estado de la tarjeta de crédito (si un cliente tiene una tarjeta de crédito o no)
- Estado de miembro activo (ya sea el cliente de un banco activo o no)
El conjunto de datos también incluye columnas como el número de fila, el identificador de cliente y el apellido del cliente que no deberían tener ningún impacto en la decisión del cliente de abandonar el banco.
El evento que define el abandono del cliente es el cierre de la cuenta bancaria del cliente. La columna exited
del conjunto de datos hace referencia al abandono del cliente. No hay mucho contexto disponible sobre estos atributos, por lo que debe continuar sin tener información en segundo plano sobre el conjunto de datos. El objetivo es comprender cómo contribuyen estos atributos al estado exited
.
Filas de ejemplo del conjunto de datos:
"CustomerID" | "Apellido" | Puntuación de crédito | "Geografía" | "Género" | "Edad" | Titularidad | Equilibrio | "NumOfProducts" | "HasCrCard" | "IsActiveMember" | Salario Estimado | "Exited" |
---|---|---|---|---|---|---|---|---|---|---|---|---|
15634602 | Hargrave | 619 | Francia | Femenino | 42 | 2 | 0.00 | 1 | 1 | 1 | 101348.88 | 1 |
15647311 | Hill | 608 | España | Femenino | 41 | 1 | 83807.86 | 1 | 0 | 1 | 112542.58 | 0 |
Descarga del conjunto de datos y carga en lakehouse
Sugerencia
Al definir los parámetros siguientes, puede usar este cuaderno con diferentes conjuntos de datos fácilmente.
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 descarga una versión disponible públicamente del conjunto de datos y, a continuación, la almacena en una instancia de Fabric Lakehouse.
Importante
Asegúrese de agregar un lago de datos al cuaderno antes de ejecutarlo. Si no lo hace, se producirá un error.
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.")
Contenido relacionado
Usarás los datos que acabas de ingerir: