Spark SQL 中的 rank() 函数使用

Bin*_*inu 6 java rank window-functions apache-spark apache-spark-sql

使用时需要一些指示 rank()

我从数据集中提取了一列..需要进行排名。

Dataset<Row> inputCol= inputDataset.apply("Colname");    
Dataset<Row>  DSColAwithIndex=inputDSAAcolonly.withColumn("df1Rank", rank());

DSColAwithIndex.show();
Run Code Online (Sandbox Code Playgroud)

我可以对列进行排序,然后也可以附加一个索引列以获得排名......但对已知的语法和用法感到好奇 rank()

mrs*_*vas 3

Window需要指定规格rank()

val w = org.apache.spark.sql.expressions.Window.orderBy("date") //some spec    

val leadDf = inputDSAAcolonly.withColumn("df1Rank", rank().over(w))
Run Code Online (Sandbox Code Playgroud)

编辑: Java版本的答案,作为使用Java的OP

import org.apache.spark.sql.expressions.WindowSpec; 
WindowSpec w = org.apache.spark.sql.expressions.Window.orderBy(colName);
Dataset<Row> leadDf = inputDSAAcolonly.withColumn("df1Rank", rank().over(w));
Run Code Online (Sandbox Code Playgroud)