Я пытаюсь создать скользящую среднюю по несортированному набору данных, содержащему значения и времена, где времена эффективно распределены случайным образом.Мне нужен список средних и стандартных отклонений за каждую неделю (или n-дневный период), содержащийся в наборе данных.В настоящее время я делаю это очень неэффективным способом, когда я зацикливаюсь на запросе sql spark для каждого периода времени следующим образом:
def one_average(t1, t2, spark = spark):
q=f"""select avg(amount) , stddev_pop(amount)
from myDB
where booking_date BETWEEN '{t1}' AND '{t2}'"""
return spark.sql(q)
start_dt = ['2015-12-20']
end_dt = ['2015-12-27']
a=[]
for i in range(0,len(start_dt)):
a.append = one_average(start_dt[i], end_dt[i]).collect()
У меня есть функция, которая дает мне все пары дат, увеличивающиеся за каждый день междуминимальная и максимальная дата.Мне было бы очень интересно узнать о более эффективном способе сделать это.