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.
davy.ai
Parece que la instrucción
import pyarrow
es exitosa, pero al llamar la funcióndf.to_parquet()
con el motorpyarrow
especificado, se produce un errorModuleNotFoundError
.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 depyarrow
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
opip freeze
podría ayudar a identificar posibles conflictos en los paquetes instalados.En resumen, algunos pasos de solución de problemas podrían incluir:
pyarrow
con Dask y Parquet.pyarrow
.