【问题标题】:Read date range from partitioned parquet file in PySpark [duplicate]从 PySpark 中的分区镶木地板文件中读取日期范围 [重复]
【发布时间】:2022-01-20 23:05:02
【问题描述】:

我有一个按 YEAR/MONTH/DAY 分区的 parquet 文件。

据我所知,我可以在特定日期以这种方式阅读它:

sqlContext
     .read
     .option("basePath", "file:///path/")
     .parquet("file:///path/YEAR=2015/MONTH=10/DAY=5/") 

但是我怎样才能得到从开始日期到结束日期的所有分区呢?

谢谢,

【问题讨论】:

    标签: apache-spark pyspark parquet


    【解决方案1】:

    您必须阅读整个文件 (file:///path),然后应用 .where() 过滤器。

    这也会将过滤器“下推”到 I/O 级别并只读所需的分区。

    【讨论】:

    • 感谢您的帮助,不胜感激。但是,如果我想与“2015-01-01”之类的日期进行比较,我确实需要连接所有列,然后将其解析为日期,不是吗?
    • 嗯,是的。没错,如果保持分区不变,就很难定义有效的日期范围过滤器。您可以按日期列进行分区。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 2018-08-13
    • 2021-11-10
    • 2018-11-14
    • 2016-09-12
    相关资源
    最近更新 更多