秩()在星火SQL
问题描述:
功能的使用需要使用rank()
秩()在星火SQL
我已经从dataset..need提取的列做排名一些指点。
Dataset<Row> inputCol= inputDataset.apply("Colname");
Dataset<Row> DSColAwithIndex=inputDSAAcolonly.withColumn("df1Rank", rank());
DSColAwithIndex.show();
我可以排序的列,然后添加一个索引列也获得军衔......但奇怪的已知语法和rank()
答
Window
规范的使用需要rank()
val w = org.apache.spark.sql.expressions.Window.orderBy("date") //some spec
val leadDf = inputDSAAcolonly.withColumn("df1Rank", rank().over(w))
被指定
编辑:答案的Java版本,使用Java
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));
OP
+0
谢谢...在java中尝试了下面的....正常工作... import org.apache.spark.sql。 expressions.WindowSpec; WindowSpec w = org.apache.spark.sql.expressions.Window.orderBy(colName); \t \t \t \t \t数据集
您必须使用窗口函数方式,因为rank和dense_rank是窗口函数 –
什么是错误消息?你能否把它列入问题? –
错误:线程“main”中的异常java.lang.UnsupportedOperationException:无法评估表达式:rank() – Binu