Cómo usar PySpark en un Notebook de Microsoft Fabric
Microsoft Fabric reúne la ingeniería de datos, la ciencia de datos y Power BI en un mismo lugar, y el Notebook es la herramienta ideal para transformar datos con código. Saber usar PySpark en un Notebook de Microsoft Fabric te permite leer, transformar y guardar datos como tabla Delta en el Lakehouse de forma reproducible — y esta guía te muestra cómo hacerlo paso a paso, desde cero. PySpark es la API de Python para Apache Spark, el motor distribuido que Fabric usa para procesar datos a escala.
Requisitos previos
- Un workspace de Microsoft Fabric asociado a una capacidad activa (sirve la prueba gratuita).
- Un Lakehouse en el que tengas permiso de escritura (rol Contributor o superior).
- Conocimientos básicos de Python — no necesitas experiencia previa con Spark.
Paso 1: Crear el Notebook
En tu workspace, selecciona + Nuevo elemento y elige Notebook. Como alternativa, abre tu Lakehouse y usa Abrir notebook > Nuevo notebook. El Notebook se abre con una celda vacía y usa PySpark como lenguaje predeterminado — justo lo que necesitamos.
No hay que configurar ningún clúster: Fabric proporciona un pool de Spark inicial que arranca en pocos segundos en cuanto ejecutas la primera celda.
Paso 2: Conectar el Lakehouse al Notebook
A la izquierda, en el Explorer, selecciona Agregar (o Agregar Lakehouse) y elige tu Lakehouse. Cuando quede como Lakehouse predeterminado, podrás usar rutas relativas como Files/ y Tables/ y escribir tablas directamente en él. Este paso es esencial: sin un Lakehouse conectado, el comando que guarda la tabla más adelante no sabe dónde escribir.
Paso 3: Leer datos con PySpark
Para que el ejemplo sea reproducible sin subir archivos, crearemos un pequeño DataFrame en memoria. Pega este código en la primera celda y ejecútalo con Shift+Enter:
from pyspark.sql import Row
sales = [
Row(product="Keyboard", category="Accessories", quantity=3, price=25.0),
Row(product="Monitor", category="Screens", quantity=1, price=180.0),
Row(product="Mouse", category="Accessories", quantity=5, price=15.0),
Row(product="Laptop", category="Computers", quantity=2, price=950.0),
]
df = spark.createDataFrame(sales)
display(df)
La función display() muestra el DataFrame como una tabla interactiva. Si en su lugar quieres leer un archivo que ya tengas en la sección Files del Lakehouse, el patrón es: spark.read.format("csv").option("header", "true").load("Files/ventas.csv").
Paso 4: Transformar los datos
Con el DataFrame cargado, añadiremos una columna calculada con el total por fila y nos quedaremos solo con las ventas por encima de 50. PySpark usa la función col() para referirse a las columnas:
from pyspark.sql.functions import col
df_total = df.withColumn("total", col("quantity") * col("price"))
df_filtered = df_total.filter(col("total") > 50)
display(df_filtered)
A continuación, agregamos el total por categoría — el tipo de resumen que suele alimentar un informe:
from pyspark.sql.functions import sum as sum_
sales_by_category = df_filtered.groupBy("category").agg(sum_("total").alias("total_by_category"))
display(sales_by_category)
Paso 5: Guardar como tabla Delta
En Fabric, Delta es el formato de tabla predeterminado. Delta añade un registro de transacciones sobre los archivos Parquet, lo que aporta fiabilidad ACID e historial de versiones a tus tablas. Para guardar el resultado en la sección Tables del Lakehouse, usa saveAsTable con el modo overwrite (sustituye la tabla si ya existe):
sales_by_category.write.format("delta").mode("overwrite").saveAsTable("sales_by_category")
Si prefieres añadir filas a una tabla existente en vez de sustituirla, cambia overwrite por append.
Verificar el resultado
Actualiza el Explorer del Lakehouse (menú de tres puntos > Actualizar) y confirma que la tabla sales_by_category aparece en Tables. Para verificar los datos con código, consulta la tabla con Spark SQL:
result = spark.sql("SELECT * FROM sales_by_category ORDER BY total_by_category DESC")
display(result)
Deberías ver una fila por categoría con su total. La misma tabla queda también disponible a través del SQL analytics endpoint del Lakehouse, lista para usar en un informe de Power BI.
Conclusión
En pocos pasos creaste un Notebook, conectaste un Lakehouse y usaste PySpark para leer, transformar y guardar datos como tabla Delta — la base de cualquier pipeline de ingeniería de datos en Fabric. A partir de aquí, prueba a leer datos reales de la sección Files, a programar el Notebook dentro de un Data Pipeline, o a aplicar la arquitectura Medallion (Bronze, Silver, Gold). ¿Cuál será la primera transformación que necesitas automatizar en tu proyecto?