Предоставление того же номера, если та же группа - PullRequest
0 голосов
/ 10 июня 2019

У меня есть датафрейм, похожий на это имя статуса

+----+------+                      
|name|value |                                                  
+----+------+                                   
|  x |  down|                                             
|  y |normal|                               
|  z |  down|                                                
|  x |normal|                                  
|  y |  down|                       
+----+------+ 

Если имена совпадают, я хочу поставить число 1,2,3 следующим образом, новый столбец должен выглядеть следующим образом

+----+------+------+   
|name|value |newCol|   
+----+------+------+   
|   x|down  |     1|   
|   y|normal|     2|   
|   z|down  |     3|   
|   x|normal|     1|    
|   y|down  |     2|   
+----+------+------+
win = Window.partitionBy("name").orderBy("name")
print("value")
dp_df_classification_agg_join = dp_df_classification_agg_join.withColumn("newCol",count("name").over(win))

1 Ответ

0 голосов
/ 10 июня 2019

Сначала замените функцию count("name") на функцию dense_rank().

Затем замените это win = Window.partitionBy("name").orderBy("name") на win = Window.partitionBy().orderBy("name")

...