如果我有这样的案例类:
body {
width: 100vw;
height: 100vh;
margin: 0;
}
我有Person(name:String = null, rank:Integer = null)
假设数据集有5个人对象:
dataset: Dataset[Person]
我希望在按ID排序数据集之后填充Scala中的排名字段。这样数据集就变成了:
Dataset[ Person(name = "Jack",id = 100, rank = null),
Person(name = "Mary",id = 400, rank = null),
Person(name = "Tom",id = 199, rank = null),
Person(name = "Linda", id = 55, rank = null),
Person(name = "Wendy", id = 30, rank = null)]
提前致谢!
答案 0 :(得分:1)
如果您有数据集,则可以使用row_number函数
添加排名列ds.withColumn("rank", row_number().over(Window.orderBy($"id")))
或者还有排名功能
ds.withColumn("rank", rank().over(Window.orderBy("id")))
def row_number():列
窗口功能:返回一个从1开始的序号 窗口分区。
希望这有帮助!