Compartir a través de


Cómo leer y escribir datos con Pandas en Microsoft Fabric

Los cuadernos de Microsoft Fabric admiten una interacción perfecta con los datos de Lakehouse mediante Pandas, la biblioteca de Python más popular para la exploración y el procesamiento de datos. Dentro de un cuaderno, puede leer rápidamente datos de y escribir datos en los recursos de Lakehouse en varios formatos de archivo. En esta guía se proporcionan ejemplos de código que le ayudarán a empezar a trabajar en su propio cuaderno.

Requisitos previos

Carga de datos de Lakehouse en un cuaderno

Nota:

Necesita algunos datos en Lakehouse para seguir los pasos descritos en esta sección. Si no tiene datos, siga los pasos descritos en Descarga del conjunto de datos y carga en lakehouse para agregar el archivo churn.csv a Lakehouse.

Una vez que adjunte una instancia de Lakehouse a su cuaderno de Microsoft Fabric, puede explorar los datos almacenados sin salir de la página y leerlos en el cuaderno con unos pocos pasos. Al seleccionar cualquier archivo de Lakehouse se muestran opciones para "Cargar datos" en un dataFrame de Spark o Pandas. También puede copiar la ruta de acceso completa de ABFS del archivo o una ruta de acceso relativa descriptiva.

Captura de pantalla que muestra las opciones para cargar datos en un DataFrame de Pandas.

Al seleccionar uno de los mensajes de "Cargar datos" se genera una celda de código que carga el archivo en un DataFrame en el cuaderno.

Captura de pantalla que muestra una celda de código agregada al cuaderno.

Conversión de un DataFrame de Spark en un DataFrame de Pandas

Como referencia, este comando muestra cómo convertir un DataFrame de Spark en un DataFrame de Pandas.

# Replace "spark_df" with the name of your own Spark DataFrame
pandas_df = spark_df.toPandas() 

Lectura y escritura de varios formatos de archivo

Nota:

Modificar la versión de un paquete específico podría interrumpir otros paquetes que dependen de él. Por ejemplo, la degradación de azure-storage-blob puede causar problemas con los Pandas y otras bibliotecas que se basan en Pandas, incluidas mssparkutils, fsspec_wrapper y notebookutils. Puede ver la lista de los paquetes preinstalados y sus versiones para cada runtime aquí.

Estos ejemplos de código muestran las operaciones de Pandas para leer y escribir varios formatos de archivo. Estos ejemplos no están diseñados para ejecutarse secuencialmente como en un tutorial, sino que se copiarán y pegarán en su propio cuaderno según sea necesario.

Nota:

Debe reemplazar las rutas de acceso de archivo en estos ejemplos de código. Pandas admite ambas rutas de acceso relativas, como se muestra aquí, y rutas de acceso completas de ABFS. Puede recuperar y copiar rutas de acceso de cualquier tipo de la interfaz mediante los pasos anteriores.

Lectura de datos de un archivo CSV

import pandas as pd

# Read a CSV file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_csv("/LAKEHOUSE_PATH/Files/FILENAME.csv")
display(df)

Escritura de datos como un archivo CSV

import pandas as pd 

# Write a Pandas DataFrame into a CSV file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_csv("/LAKEHOUSE_PATH/Files/FILENAME.csv") 

Lectura de datos de un archivo de Parquet

import pandas as pd 
 
# Read a Parquet file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_parquet("/LAKEHOUSE_PATH/Files/FILENAME.parquet") 
display(df)

Escritura de datos como un archivo de Parquet

import pandas as pd 
 
# Write a Pandas DataFrame into a Parquet file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_parquet("/LAKEHOUSE_PATH/Files/FILENAME.parquet") 

Lectura de datos de un archivo de Excel

import pandas as pd 
 
# Read an Excel file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
# If the file is in a subfolder, add the correct file path after Files/
# For the default lakehouse attached to the notebook, use: df = pd.read_excel("/lakehouse/default/Files/FILENAME.xlsx") 
df = pd.read_excel("/LAKEHOUSE_PATH/Files/FILENAME.xlsx") 
display(df) 

Escritura de datos como un archivo de Excel

import pandas as pd 

# Write a Pandas DataFrame into an Excel file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_excel("/LAKEHOUSE_PATH/Files/FILENAME.xlsx") 

Lectura de datos de un archivo JSON

import pandas as pd 
 
# Read a JSON file from your Lakehouse into a Pandas DataFrame
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df = pd.read_json("/LAKEHOUSE_PATH/Files/FILENAME.json") 
display(df) 

Escritura de datos como un archivo JSON

import pandas as pd 
 
# Write a Pandas DataFrame into a JSON file in your Lakehouse
# Replace LAKEHOUSE_PATH and FILENAME with your own values
df.to_json("/LAKEHOUSE_PATH/Files/FILENAME.json") 

Trabajar con tablas Delta

Las tablas delta son el formato de tabla predeterminado en Microsoft Fabric y se almacenan en la sección Tablas de su instancia de Lakehouse. A diferencia de los archivos, las tablas Delta requieren un proceso de dos pasos para trabajar con pandas: primero lea la tabla en un DataFrame de Spark y, a continuación, conviértala en un DataFrame de Pandas.

Creación de una tabla Delta de prueba

Para seguir los pasos de esta sección, necesita una tabla Delta en Lakehouse. Siga los pasos descritos en Descarga del conjunto de datos y carga en lakehouse para agregar el archivo churn.csv a Lakehouse y, a continuación, cree una tabla de prueba desde el archivo churn.csv ejecutando este código en el cuaderno:

import pandas as pd
# Create a test Delta table from the churn.csv file

df = pd.read_csv("/lakehouse/default/Files/churn/raw/churn.csv")
spark_df = spark.createDataFrame(df)
spark_df.write.format("delta").mode("overwrite").saveAsTable("churn_table")

Esto crea una tabla Delta denominada churn_table que puede usar para probar los ejemplos siguientes.

Leer datos de una tabla Delta

# Read a Delta table from your Lakehouse into a pandas DataFrame
# This example uses the churn_table created above
spark_df = spark.read.format("delta").load("Tables/churn_table")
pandas_df = spark_df.toPandas()
display(pandas_df)

También puede leer tablas delta mediante la sintaxis de Spark SQL:

# Alternative method using Spark SQL
spark_df = spark.sql("SELECT * FROM churn_table")
pandas_df = spark_df.toPandas()
display(pandas_df)

Escritura de dataFrame de Pandas en una tabla Delta

# Convert pandas DataFrame to Spark DataFrame, then save as Delta table
# Replace TABLE_NAME with your desired table name
spark_df = spark.createDataFrame(pandas_df)
spark_df.write.format("delta").mode("overwrite").saveAsTable("TABLE_NAME")

También puede guardar en una ruta de acceso específica en la sección Tablas:

# Save to a specific path in the Tables section
spark_df = spark.createDataFrame(pandas_df)
spark_df.write.format("delta").mode("overwrite").save("Tables/TABLE_NAME")

Modos de escritura para tablas Delta

Al escribir en tablas Delta, puede especificar diferentes modos:

# Overwrite the entire table
spark_df.write.format("delta").mode("overwrite").saveAsTable("TABLE_NAME")

# Append new data to existing table
spark_df.write.format("delta").mode("append").saveAsTable("TABLE_NAME")

Nota:

Las tablas delta creadas en la sección Tablas de Lakehouse se pueden detectar sin ningún paso adicional de registro o configuración, y se pueden consultar mediante Spark SQL. También aparecen en la interfaz del explorador de Lakehouse (es posible que tenga que actualizar el explorador de Lakehouse para ver los cambios recientes).