Tutorial parte 1: Ingesta de datos en un lago de datos de Microsoft Fabric utilizando Apache Spark

En este tutorial, ingerirá datos en fabric lakehouses en formato delta lake. Algunos términos importantes para comprenderlo:

  • Almacén de lago: un almacén de lago es una colección de archivos/carpetas/tablas que representa una base de datos sobre un lago de datos utilizado por el motor de Spark y el motor SQL para el procesamiento de macro datos y que incluye funcionalidades mejoradas para las transacciones ACID al usar las tablas con formato Delta de código abierto.

  • Lago Delta: Un lago Delta es una capa de almacenamiento de código abierto que aporta transacciones ACID, administración de metadatos escalables 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 de escenarios específicos a soluciones de aprendizaje automático a fin de obtener modelos más precisos. Los conjuntos de datos abiertos están 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:

  • Lectura de datos de contenedores de Azure Open Datasets.
  • Escribir datos en una tabla delta de Fabric Lakehouse.

Requisitos previos

Seguir en el cuaderno

1-ingest-data.ipynbes el cuaderno que acompaña a este tutorial.

Para abrir el cuaderno complementario para este tutorial, siga las instrucciones en Preparación del sistema para los tutoriales de ciencia de datos para importar el cuaderno en el á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 el abandono, como:

  • Puntuación de crédito
  • Ubicación geográfica (Alemania, Francia, España)
  • Género (masculino, femenino)
  • Age
  • Antigüedad (años de ser cliente del banco)
  • Saldo de la cuenta
  • Salario estimado
  • Número de productos que un cliente ha comprado 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. Su objetivo es reconocer cómo contribuyen estos atributos al exited estado.

Filas de ejemplo del conjunto de datos:

"CustomerID" "Surname" "CreditScore" "Geography" "Gender" "Age" "Antigüedad" "Saldo" "NumOfProducts" "HasCrCard" "IsActiveMember" "EstimatedSalary" "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 el almacén de lago

Sugerencia

Al definir los parámetros siguientes, puede aplicar este cuaderno a 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

El código siguiente descarga una versión disponible públicamente del conjunto de datos y, a continuación, la almacena en un almacén de Fabric lakehouse.

Importante

Asegúrese de agregar un lago de datos al cuaderno antes de ejecutarlo. De lo contrario, 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.")

Usará los datos que acaba de ingerir: