使用 pyarrow 读取多个 csv 文件

问题描述 投票:0回答:1

我正在寻找使用来自hadoop的PyArrow读取多个csv文件,但我不知道如何做到这一点。

为了给您提供更多背景信息,我有一些包含多个 csv 文件的文件夹

文件夹:

  • 文件0
  • 文件1
  • 文件2
  • 等等..

我想按顺序阅读它们,这样我就可以生成小于 150 MB 的 parquet 文件(例如)。例如,如果所有这些文件都生成了一个 300 MB 的 parquet 文件,我想将该文件拆分为 2 个 150 MB 的文件。

现在,我只有这个,但它为 1 个 csv 生成 1 个镶木地板文件,这不是我所期望的

我在互联网上没有找到任何东西......我唯一看到的东西:

  • 正在使用 pyarrow 数据集进行读取,但我不能,因为我在读取 csv 时需要 read_options、parse_options 和 Convert_options
  • 并使用 open_input_stream 而不是 open_input_file 但我不知道它的作用......

要导出多个镶木地板文件,我没有找到任何东西......

from pyarrow import csv
from pyarrow import parquet
from pyarrow import fs

hdfs = fs.HadoopFileSystem("default")
with hdfs.open_input_file("path") as f:
    csv_file = csv.read_csv(f)
    
parquet.write_table(csv_file, "newpath")

非常感谢!

python csv parquet pyarrow
1个回答
0
投票

但我不能,因为我在读取 csv 时需要 read_options、parse_options 和 Convert_options

您可以将

file_format
参数传递给 pyarrow.dataset.dataset,类型为 CsvFileFormat,它可以接受 parse_options 和
convert_option

© www.soinside.com 2019 - 2024. All rights reserved.