Использование Python, Parquet и Spark и запуск ArrowNotImplementedError: Support for codec 'snappy' not built
после обновления до pyarrow=3.0.0
. Моя предыдущая версия без этой ошибки была pyarrow=0.17
. Ошибка не появляется в pyarrow=1.0.1
и появляется в pyarrow=2.0.0
. Идея состоит в том, чтобы написать pandas DataFrame как набор данных Parquet (в Windows) с использованием сжатия Snappy, а затем обработать набор данных Parquet с помощью Spark.
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')
pyarrow
? - person Uwe L. Korn   schedule 03.02.2021pyarrow
был установлен черезconda install pyarrow
- person Russell Burdt   schedule 03.02.2021conda list --export
,print(pa.cpp_build_info)
иpa.show_versions()
? - person Pace   schedule 03.02.2021pyarrow
не из conda-forge. Он отображается вconda list
какpyarrow=3.0.0=pypi_0
, что, как я думал, означает, что оно пришло из pypi. Однако вашcpp_build_info
также не соответствует тому, что поступает из дистрибутива PYPI (и conda-forge, и pypi используют версию MSVC 19.16.27045.0). Удалите pyarrow и переустановите, убедившись, что вы выполняете установку из conda-forge ...conda install -c conda-forge pyarrow
- person Pace   schedule 03.02.2021conda install -c conda-forge pyarrow
вместоconda install pyarrow
. Если вы предоставите это в качестве ответа, я могу согласиться. Но почему это так? Потому что в обоих случаях он отображается какpyarrow=3.0.0
, поэтому это не было бы ожидаемым поведением. - person Russell Burdt   schedule 03.02.2021pypi_0
просто означает не conda, то оно действительно могло появиться откуда угодно. - person Pace   schedule 03.02.2021