【问题标题】:Giving Same Number If Same Group如果同一组给出相同的号码
【发布时间】:2019-06-10 12:52:59
【问题描述】:

我有这样的数据框 名称状态

+----+------+                      
|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))

【问题讨论】:

  • ...好的。你有问题吗?
  • 请提供您的代码以及您为实现这一目标所做的工作
  • 我编辑我的问题

标签: python pyspark aws-glue


【解决方案1】:

首先,将count("name") 函数替换为dense_rank() 函数。

然后,将 win = Window.partitionBy("name").orderBy("name") 替换为 win = Window.partitionBy().orderBy("name")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多