Как вытащить данные, зациклив даты на pyspark sql? - PullRequest
0 голосов
/ 13 июня 2019

У меня есть сценарий, в котором я извлекаю данные в pispark DataFrame, используя spark sql.Сценарий показан ниже:

from pyspark import SparkContext, SparkConf, HiveContext
from pyspark.sql import SparkSession
spark = SparkSession.builder.enableHiveSupport().getOrCreate()

df_query = """
select 
  *
from schema.table
where start_date between date '2019-03-01' and date '2019-03-07'
"""
df = spark.sql(df_query) 

В настоящее время сценарий извлекает данные за определенную неделю.Тем не менее, я хочу повторить этот сценарий в течение всех недель.Как я могу это сделать?

1 Ответ

1 голос
/ 15 июня 2019

Для этого можно использовать класс timedelta :

import datetime

startDate = datetime.datetime.strptime('2019-03-01', "%Y-%m-%d")
maxDate = datetime.datetime.strptime('2019-04-03', "%Y-%m-%d")


while startDate <= maxDate:
    endDate = startDate + datetime.timedelta(days=7)

    df_query = """
select 
  *
from schema.table
where start_date between date '{}' and date '{}'
""".format(startDate.date(), endDate.date())
    print(df_query)
    startDate = endDate + datetime.timedelta(days=1)
...