我正在尝试在包含值和时间的未排序数据集中创建移动平均值,其中时间实际上是随机分布的。我想要数据集中包含每周(或n天时间)内的平均值和标准偏差的列表。我目前正在以一种非常低效的方式来执行此操作,因此我在每个时间段都循环了spark sql查询:
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()
我有一个功能,可让我在最小日期和最大日期之间的每一天对所有日期对进行递增。 我将非常有兴趣学习一种更有效的方法。