Python相当于Windows的Spark RangeInterval?

Python相当于Windows的Spark RangeInterval?,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我试图找出python中是否有一种方法可以在滚动聚合中实现与rangeBetween等效的功能。在Spark中,您可以使用rangeBetween,这样窗口就不必在目标行上对称,即对于每一行,我可以查看-5h到+3h:datetime列上absed之前5小时到之后3小时之间发生的所有行。我知道python有pd.rolling选项,但是在阅读了所有我能找到的文档之后,它看起来只需要1个输入作为窗口。您可以更改该窗口是否位于每一行的中心,但我找不到明确设置它的方法,以便它可以查看我选择的范围 有人

我试图找出python中是否有一种方法可以在滚动聚合中实现与rangeBetween等效的功能。在Spark中,您可以使用rangeBetween,这样窗口就不必在目标行上对称,即对于每一行,我可以查看-5h到+3h:datetime列上absed之前5小时到之后3小时之间发生的所有行。我知道python有pd.rolling选项,但是在阅读了所有我能找到的文档之后,它看起来只需要1个输入作为窗口。您可以更改该窗口是否位于每一行的中心,但我找不到明确设置它的方法,以便它可以查看我选择的范围


有人知道我不知道的另一个功能吗?

我不确定这是否是最好的答案,但它是我的,它可以工作,所以我想在有更好的选择之前,它必须工作。我用它制作了一个python函数,这样您就可以加入任何您想要的聚合函数

def rolling_stat(pdf, lower_bound, upper_bound, group , statistic = 'mean' )
    import pandas as pd
    import numpy as np
    import random
    from datetime import datetime, timedelta

    group = pdf[group].drop_duplicates()
    for grp in group:
        dataframe_grp = dataframe[dataframe['group']==grp]
        dataframe_grp.sort_index()
        for index, row in dataframe_grp.iterrows(): 
            lower= (index - timedelta(minutes = lower_bound))
            upper=  (index + timedelta(minutes = upper_bound))    
            agg = dataframe_grp.loc[lower:upper]['nbr'].agg([statistic])
            dataframe_grp.at[index, 'agg'] = agg[0]     
            data_agg = data_agg.append(dataframe_grp)    

对于for循环,它可以工作,但效率不是很高