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')
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.