Для этого вам нужно count
над window
по группе ID
и Date
Ниже приведен код для этого -
df = sqlContext.createDataFrame([
['A', 1],
['B', 1],
['C', 1],
['A', 1],
['A', 1],
['B', 2]
],
['ID', 'Date']
)
df.show()
+---+----+
| ID|Date|
+---+----+
| A| 1|
| B| 1|
| C| 1|
| A| 1|
| A| 1|
| B| 2|
+---+----+
#Import required Libraries
from pyspark.sql import functions as F
from pyspark.sql.window import Window as W
import sys
df.withColumn(
"count",
F.count(F.lit(1)).over(W.partitionBy(["ID", "Date"]).rowsBetween(-sys.maxsize, 0))
).show()
+---+----+-----+
| ID|Date|count|
+---+----+-----+
| B| 1| 1|
| C| 1| 1|
| A| 1| 1|
| A| 1| 2|
| A| 1| 3|
| B| 2| 1|
+---+----+-----+
заказ для Id
& Date
будет случайным