【问题标题】:Can I load multiple csv files using pyarrow?我可以使用 pyarrow 加载多个 csv 文件吗?
【发布时间】:2021-05-26 12:05:57
【问题描述】:

我知道这可以在 R 中按如下方式完成

ds <- open_dataset("nyc-taxi/csv/2019", format = "csv",
  partitioning = "month")

但是有没有办法在 python 中做呢?尝试了这些,但似乎那不是一个选择

from pyarrow import csv
table = csv.read_csv("*.csv")
from pyarrow import csv
path = os.getcwd()
table = csv.read_csv(path)
table

有没有办法在 python 中实现它?

【问题讨论】:

    标签: python csv pyarrow apache-arrow


    【解决方案1】:

    是的,您也可以使用 pyarrow 执行此操作,就像在 R 中一样,使用 pyarrow.dataset 子模块(pyarrow.csv 子模块仅公开处理单个 csv 文件的功能)。

    示例代码:

    import pyarrow.dataset as ds
    
    dataset = ds.dataset("nyc-taxi/csv/2019", format="csv", partitioning=["month"])
    table = dataset.to_table()
    

    然后在to_table() 方法中您可以指定行/列过滤器。

    【讨论】:

    • 太棒了!我想将它转换为 parquet 文件格式,那么我可以从 dataset 转换它吗?或者我应该在写实木复合地板之前把它做成一张桌子?我的理解是,当我们将其转换为表格时,由于涉及反序列化,因此需要时间。
    • 您可以直接将数据集写入 parquet,而无需先转换为表格(现在,实际上,CSV 仍需要反序列化并作为表格读取才能写入 parquet)。可以使用ds.write_dataset(dataset, format="parquet") 将数据集写入 Parquet
    • 但它不适用于 'csv.gz' 集合。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2021-01-18
    相关资源
    最近更新 更多