【问题标题】:Read only specific rows of .parquet files matching criteria?只读取符合条件的.parquet 文件的特定行?
【发布时间】:2019-10-18 20:30:43
【问题描述】:

我正在处理一个充满 .parquet 文件的文件系统。其中一列“id”唯一地标识了一台机器。我能够使用 pyspark 打开某个目录路径中的所有 .parquet 文件,然后从“id”列创建一组值([])。我想打开所有其他文件中的所有其他行,其中“id”与先前计算集中的值之一匹配。

我可以通过 pyspark 做到这一点,但它非常复杂,需要我实例化一个本地 spark 服务器。我正在尝试通过 pyarrow 找到一种方法来执行此操作,但似乎它的 read_pandas / read 方法 'filters' 参数只能过滤分区数据,而不是任意列数据。

有没有办法实现我在这里寻找的东西?我无法打开整个数据集,然后使用 Python 过滤掉“id”不匹配的行,因为它不适合内存。

【问题讨论】:

    标签: python pyspark pyarrow


    【解决方案1】:

    从 0.15.0 开始,pyarrow 没有此功能,但我们(在 Apache Arrow 项目中)正在积极开展这项工作,并希望将其包含在下一个主要版本中。

    【讨论】:

    • 跟踪这个有问题吗?
    • 没有一个问题值得关注。 This search 应该包含相关问题(然后是一些)。目前关于这个新数据集 API 的大部分工作都是在 C++ 中完成的。 issues.apache.org/jira/browse/ARROW-6341 是第一个添加 Python 绑定的。
    猜你喜欢
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多