目前我正在做的是:
val new_df= old_df.groupBy("column1").count().withColumnRenamed("count","column1_count")
val new_df_rankings = new_df.withColumn(
"column1_count_rank",
dense_rank()
.over(
Window.orderBy($"column1_count".desc))).select("column1_count","column1_count_rank")
但实际上,我要做的只是在原始df(旧的df)中添加一个名为“column1\u count\u rank”的列,而不需要经过所有这些中间步骤并合并回来。
有办法吗?
谢谢,祝你今天愉快!
1条答案
按热度按时间zsbz8rwp1#
当您应用聚合时,将会有一个计算结果,它将创建新的Dataframe。你能给出一些输入输出示例吗
old_df.groupBy("column1").agg(count("*").alias("column1_count")) .withColumn("column1_count_rank",dense_rank().over(Window.orderBy($"column1_count".desc))) .select("column1_count","column1_count_rank")