如何从 s3 中的文件夹读取所有镶木地板文件到 pandas

How to read all parquet files from a folder in s3 to pandas

如何使用 Python 3.x 将文件夹(由 Spark 编写)中的所有镶木地板文件读取到 pandas DataFrame 中?由于版本冲突,最好不要 pyarrow

文件夹包含模式为 part-*.parquet 的镶木地板文件和一个 _SUCCESS 文件。

您可以使用 s3fs 列出文件并使用 dask 读取文件,如下所示:

import s3fs
import dask.dataframe as dd

s3 = s3fs.S3FileSystem()

def get_files(input_folder):
    files = s3.ls(input_folder)
    files = ['s3://' + str(file) for file in files if not str(file).endswith('_SUCCESS')]
    return files

def read_files(input_folder):
    files = get_files(input_folder)
    df = dd.read_parquet(files)
    return df

df = read_files(input_folder)