python 使用 snappy 和 thiftpy 在 macOS 上安装 parquet 失败

python parquet install fails on macos with snappy and thiftpy

我对 python 比较陌生。我需要一种磁盘要求适中的快速 IO 格式。羽毛缺乏压缩力,所以它是镶木地板。我尝试安装

sudo pip3 install parquet

在 macOS 10.14.6、Python 3.7.4、pip 19.1.1 上。

第一组错误与 snappy 有关。它们可以用 brew install snappysudo pip3 install snappy 修复。 (问:pip3 不能自动找出并满足依赖关系,或者至少指导如何解决这个问题?)

但是,我运气不好:

...
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -I/usr/local/include -I/usr/local/opt/openssl/include -I/usr/local/opt/sqlite/include -I/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c thriftpy/transport/cybase.c -o build/temp.macosx-10.14-x86_64-3.7/thriftpy/transport/cybase.o
thriftpy/transport/cybase.c:3127:24: error: no member named 'exc_type' in 'struct _ts'
    tmp_type = tstate->exc_type;
               ~~~~~~  ^
thriftpy/transport/cybase.c:3128:25: error: no member named 'exc_value' in 'struct _ts'; did you mean 'curexc_value'?
    tmp_value = tstate->exc_value;
                        ^~~~~~~~~
                        curexc_value
...

何去何从?

parquet 软件包无人维护且已过时。要在 Python 中读写 Parquet 文件,您应该安装 pyarrow 并使用 pyarrow.parquet 模块。

安装 pyarrowpandas 后,为了方便起见,您还可以将 pandas 的 Parquet 功能与 pandas.read_parquetpandas.DataFrame.to_parquet 一起使用。