es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Dask df.to_parquet no puede encontrar pyarrow. RuntimeError: `pyarrow` no está instalado.

Entorno:

  • macOS Big Sur v 11.6.1
  • Python 3.7.7
  • pyarrow==5.0.0 (de pipfreeze)

Desde la terminal:

>>> import pyarrow
>>> pyarrow
<modulo 'pyarrow' desde '/Users/garyb/Develop/DS/tools-pay-data-pipeline/env/lib/python3.7/site-packages/pyarrow/__init__.py'>

Entonces confirmé que tengo pyarrow instalado. Pero cuando intento escribir un Dataframe de Dask en formato parquet, obtengo:

def make_parquet_file(filepath):
    parquet_path = f'{PARQUET_DIR}/{company}_{table}_{batch}.parquet'
    df.to_parquet(parquet_path, engine='pyarrow')

ModuleNotFoundError: No se encuentra el módulo pyarrow

Detalle de la excepción:

~/Develop/DS/research-dask-parquet/env/lib/python3.7/site-packages/dask/dataframe/io/parquet/core.py en get_engine(engine)
    970     elif engine in ("pyarrow", "arrow", "pyarrow-legacy", "pyarrow-dataset"):
    971 
--> 972         pa = import_required("pyarrow", "`pyarrow` no está instalado")
    973         pa_version = parse_version(pa.__version__)
    974 

Esta función funciona. Es un archivo CSV mucho más pequeño solo para confirmar que la función df.to_parquet funciona:

def make_parquet_file():
    csv_file = f'{CSV_DATA_DIR}/diabetes.csv'
    parquet_file = f'{PARQUET_DIR}/diabetes.parquet'

    # Solo para demostrar que puedo leer el archivo CSV
    p_df = pd.read_csv(csv_file)
    print(p_df.shape)

    d_df = dd.read_csv(csv_file)
    d_df.to_parquet(parquet_file)

¿Está buscando en el lugar correcto el paquete? Estoy atrapado.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que la instrucción import pyarrow es exitosa, pero al llamar la función df.to_parquet() con el motor pyarrow especificado, se produce un error ModuleNotFoundError.

    Un posible problema podría ser que el módulo pyarrow no está instalado o configurado correctamente para su uso con Dask. Verificar la instalación y la compatibilidad de versiones de pyarrow con Dask y Parquet podría ayudar a resolver el problema.

    Otra posibilidad podría estar relacionada con las rutas de búsqueda de paquetes y módulos. Vale la pena verificar si se ha instalado la versión correcta de pyarrow para el intérprete de Python que se está utilizando y si la ruta de búsqueda de módulos está configurada correctamente para incluir el directorio donde se instaló pyarrow.

    Además, comprobar si existen nombres o versiones de módulos en conflicto que estén causando problemas también podría proporcionar pistas. Ejecutar el comando pip list o pip freeze podría ayudar a identificar posibles conflictos en los paquetes instalados.

    En resumen, algunos pasos de solución de problemas podrían incluir:

    • Verificar la correcta instalación y compatibilidad de versiones de pyarrow con Dask y Parquet.
    • Revisar las rutas de búsqueda de paquetes/módulos y asegurarse de que se esté utilizando y tenga acceso a la versión correcta de pyarrow.
    • Identificar posibles conflictos con los paquetes instalados mediante la verificación de la lista de paquetes/ versiones.

Comments are closed.