web-dev-qa-db-fra.com

Python Erreur lors de l'utilisation de Pyarrow - ArrownoImplementedError: Prise en charge du codec 'Snappy' non construit

En utilisant Python, parquet, et Spark et courant dans ArrowNotImplementedError: Support for codec 'snappy' not built après la mise à niveau vers pyarrow=3.0.0. Ma version précédente sans cette erreur était pyarrow=0.17. L'erreur ne le fait pas Apparaître dans pyarrow=1.0.1 et le fait apparaissent dans pyarrow=2.0.0. L'idée est d'écrire un fichier pandas Dataframe en tant que jeu de données de parquet (sous Windows) à l'aide de la compression snappy, puis pour traiter le jeu de données de parquet à l'aide d'une étincelle.

import numpy as np
import pandas as pd
import pyarrow as pa
import pyarrow.parquet as pq

df = pd.DataFrame({
    'x': [0, 0, 0, 1, 1, 1], 
    'a': np.random.random(6), 
    'b': np.random.random(6)})
table = pa.Table.from_pandas(df, preserve_index=False)
pq.write_to_dataset(table, root_path=r'c:/data', partition_cols=['x'], flavor='spark')

enter image description here

10
Russell Burdt

J'ai eu le même problème. Est une nouvelle installation d'Anaconda 3.8. alors a fait conda install -c conda-forge pyarrow À partir de ce lien " https://anaconda.org/conda-forge/pyarrow ". Il s'étouffe à travers cette installation mais échoue avec une résolution congelée/flexible et que Conda continue d'essayer différentes variantes jusqu'à ce qu'elle s'installe enfin. Vous pouvez alors importer Pyarrow. Mais alors, lorsque vous essayez d'ouvrir un fichier de parquet, vous obtenez l'erreur de codec "snappy" - le sujet de ce fil.

J'ai alors fait conda remove pyarrow Je suis donc revenu à une installation propre. Puis pip install pyarrow, et je pourrais charger avec succès le fichier de parquet.

1
clg4