【发布时间】:2021-07-11 13:09:47
【问题描述】:
我的输入文件是这样分区的
表/年/月/日。
我需要阅读过去 30 天的数据。由于输入数据集很大(跨越 4 年),我如何实现一个下推谓词来过滤最近 30 天的数据。
【问题讨论】:
-
这些表是像 table/2021/4/5 还是不同的结构?你能添加几个结构的例子吗?
标签: python apache-spark pyspark apache-spark-sql bigdata
我的输入文件是这样分区的
表/年/月/日。
我需要阅读过去 30 天的数据。由于输入数据集很大(跨越 4 年),我如何实现一个下推谓词来过滤最近 30 天的数据。
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql bigdata
由于可以传递目标路径列表,首先我们可以在读取文件之前生成路径。以下是假设输入数据为 parquet 格式的示例代码:
from datetime import datetime, timedelta
start_date=datetime.strptime("2021-01-01", "%Y-%m-%d")
days = 30
paths=[]
for i in range(0, days+1):
oper_date=start_date - timedelta(days=i)
path = "table/{year}/{month}/{day}".format(year=oper_date.year, month=oper_date.month, day = oper_date.day)
paths.append(path)
spark.read.parquet(*paths)
【讨论】: