Compartir a través de


¿Puede usar Pandas en Azure Databricks?

Databricks Runtime incluye Pandas como uno de los paquetes estándar de Python, lo que le permite crear y aprovechar los dataframes de Pandas en cuadernos y trabajos de Databricks.

En Databricks Runtime 10.4 LTS y versiones posteriores, la API de Pandas en Spark proporciona comandos de Pandas conocidos sobre dataframes de PySpark. También puede convertir dataframes entre Pandas y PySpark.

Apache Spark incluye la ejecución optimizada de Arrow de la lógica de Python en forma de las API de función de Pandas, que permiten a los usuarios aplicar transformaciones de Pandas directamente a dataframes de PySpark. Apache Spark también admite UDF de Pandas, que usan optimizaciones de Arrow similares para funciones de usuario arbitrarias definidas en Python.

¿Dónde almacena Pandas datos en Azure Databricks?

Puede usar Pandas para almacenar datos en muchas ubicaciones diferentes en Azure Databricks. La capacidad de almacenar y cargar datos desde algunas ubicaciones depende de las configuraciones establecidas por los administradores del área de trabajo.

Nota:

Databricks recomienda almacenar datos de producción en el almacenamiento de objetos en la nube. Consulte Conectar a Azure Data Lake Storage Gen2 y Blob Storage

Si está en un área de trabajo habilitada para Unity Catalog, puede acceder al almacenamiento en la nube con ubicaciones externas. Consulte Creación de una ubicación externa para conectar el almacenamiento en la nube a Azure Databricks.

Para la exploración rápida y los datos sin información confidencial, puede guardar datos de forma segura mediante rutas de acceso relativas o DBFS, como en los ejemplos siguientes:

import pandas as pd

df = pd.DataFrame([["a", 1], ["b", 2], ["c", 3]])

df.to_csv("./relative_path_test.csv")
df.to_csv("/dbfs/dbfs_test.csv")

Puede explorar los archivos escritos en DBFS con el comando magic %fs, como en el ejemplo siguiente. Tenga en cuenta que el directorio /dbfs es la ruta de acceso raíz de estos comandos.

%fs ls

Al guardar en una ruta de acceso relativa, la ubicación del archivo depende de dónde ejecute el código. Si usa un cuaderno de Databricks, el archivo de datos se guarda en el almacenamiento de volúmenes conectado al controlador del clúster. Los datos almacenados en esta ubicación se eliminan permanentemente cuando finaliza el clúster. Si usa carpetas Git de Databricks con la compatibilidad con archivos arbitrarios habilitada, los datos se guardan en la raíz del proyecto actual. En cualquier caso, puede explorar los archivos escritos mediante el comando magic %sh, lo que permite operaciones de Bash simples relativas al directorio raíz actual, como en el ejemplo siguiente:

%sh ls

Para más información sobre cómo Azure Databricks almacena varios archivos, vea Trabajar con archivos en Azure Databricks.

¿Cómo se cargan datos con Pandas en Azure Databricks?

Azure Databricks proporciona una serie de opciones para facilitar la carga de datos en el área de trabajo para la exploración. El método preferido para cargar datos con Pandas varía en función de cómo cargue los datos en el área de trabajo.

Si tiene pequeños archivos de datos almacenados junto con cuadernos en el equipo local, puede cargar los datos y el código junto con las carpetas Git. Después, puede usar rutas de acceso relativas para cargar archivos de datos.

Azure Databricks proporciona amplias opciones basadas en la interfaz de usuario para la carga de datos. La mayoría de estas opciones almacenan los datos como tablas Delta. Puede leer una tabla Delta en un dataframe de Spark y, a continuación, convertirla en un dataframe de Pandas.

Si ha guardado archivos de datos mediante DBFS o rutas de acceso relativas, puede usar DBFS o rutas de acceso relativas para volver a cargar esos archivos de datos. En el código siguiente se muestra un ejemplo.

import pandas as pd

df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")

Puedes cargar datos directamente desde Azure Data Lake Storage Gen2 mediante Pandas y una dirección URL completa. Debe proporcionar credenciales en la nube para acceder a los datos en la nube. Los paquetes de Python fsspec y adlfs también deben instalarse.

df = pd.read_csv(
  f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
  storage_options={
    "sas_token": sas_token_value
  }
)