How to resample pyspark dataframe, like in pandas we have pd.grouper, and pd.resample and I can resample on h,2h, 3h, week. I have the following sample pyspark dataframe, how I can aggregate it at on column ind and date and every h/2h/3h
from pyspark import SparkContext
from pyspark.sql import SQLContext
sc = SparkContext.getOrCreate()
sqlContext = SQLContext(sc)
a = sqlContext.createDataFrame([["Anand", "2020-02-01 16:00:00", 12, "ba"],
["Anand", "2020-02-01 16:05:00", 7, "ba" ]
["Anand", "2020-02-02 19:10:00", 14,"sa"],
["Carl", "2020-02-01 16:00:00", 16,"da"],
["Carl", "2020-02-02 16:02:00", 12,"ga"],
["Carl", "2020-02-02 17:10:00", 1,"ga"],
["Eric", "2020-02-01 16:o0:00", 24, "sa"]], ['ind',"date","sal","imp"])
a.show()
| ind| date|sal|imp|
+-----+-------------------+---+---+
|Anand|2020-02-01 16:00:00| 12| ba|
|Anand|2020-02-01 16:05:00| 7| sa|
|Anand|2020-02-02 19:10:00| 14| sa|
| Carl|2020-02-01 16:00:00| 16| da|
| Carl|2020-02-01 16:02:00| 12| ga|
| Carl|2020-02-02 17:10:00| 1| ga|
| Eric|2020-02-01 16:00:00| 24| sa|
So when aggregation on column ind and resampling on date(everyhour) and mean of sale Desired output may look like
| ind| date|sal|
+-----+-------------------+---+
|Anand|2020-02-01 16:00:00| 9|
|Anand|2020-02-02 19:00:00| 14|
| Carl|2020-02-01 16:00:00| 9|
| Carl|2020-02-02 17:00:00| 1|
| Eric|2020-02-01 16:00:00| 24|