python - Pyarrow 从 s3 读/写

标签 python pyarrow

是否可以在 s3 中将 Parquet 文件从一个文件夹读取和写入另一个文件夹,而无需使用 pyarrow.

这是我的代码:

import pyarrow.parquet as pq
import pyarrow as pa
import s3fs

s3 = s3fs.S3FileSystem()

bucket = 'demo-s3'

pd = pq.ParquetDataset('s3://{0}/old'.format(bucket), filesystem=s3).read(nthreads=4).to_pandas()
table = pa.Table.from_pandas(pd)
pq.write_to_dataset(table, 's3://{0}/new'.format(bucket), filesystem=s3, use_dictionary=True, compression='snappy')

最佳答案

如果您不想直接复制文件,看来您确实可以避免使用 Pandas :

table = pq.ParquetDataset('s3://{0}/old'.format(bucket),
    filesystem=s3).read(nthreads=4)
pq.write_to_dataset(table, 's3://{0}/new'.format(bucket), 
    filesystem=s3, use_dictionary=True, compression='snappy')

关于python - Pyarrow 从 s3 读/写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49513152/

相关文章:

python - 如何连接列表中的字符串对

python - NumPy 中方便且经济的向量操作

python - 用 pyarrow 将 Pandas 数据框写成 Parquet

python-3.x - pip install pyarrow 在 Linux/在 docker 中失败

python - 将 csv 文件读取到 pandas 失败

python - 调整图像大小而不失真 OpenCV

c++ - 如何在 C++ 中保存 Parquet 文件中的时间戳并将其加载到 Python Pandas 中?

parquet - 使用 pyarrow 的 Python 错误 - ArrowNotImplementedError : Support for codec 'snappy' not built

python - 使用子列表从较大列表中检索数据