pyspark 读取最近3个月的数据、转换和输出

ev7lccsx  于 2022-12-11  发布在  Spark
关注(0)|答案(1)|浏览(134)

我是新来的pyspark,需要一些帮助。
我有数据坐在下面的分区。

  • 每次运行脚本时,我希望它只处理3个月的数据。
  • 删除某些字段并仅选择几个字段。
  • 重命名字段。
  • 输出到用于读取的相同分区名中的另一个s3桶。

我怎样才能达到上述目的。
我是新来的pyspark需要帮助开始。

yacmzcpb

yacmzcpb1#

下面的代码段应该可以工作。用您的路径替换base_path

import datetime
from dateutil.relativedelta import relativedelta

# Function to generate the last X months
def get_last_months(start_date, months):
    for i in range(months):
        yield (start_date.year,start_date.month)
        start_date += relativedelta(months = -1)

rollback=3
months=[i for i in get_last_months(datetime.datetime.today(), rollback)]
# Create paths required
base_path = "{y}/{m}/filename"
paths=[]
for i in months:
    paths.append(base_path.format(y=i[0],m=i[1])
df = spark.read.parquet(*paths)

上面的代码片段将帮助你从多个路径阅读。剩下的逻辑是你必须实现的。

相关问题