1分析函数的语法:
分析函数名(参数) over(partition by子句order by子句rows/range子句)
1.1分析函数名:
sum、max、 min、 count、 avg等聚合函数
lead、 lag等比较函数
rank等排名函数
1.2over关键字
表示前面的函数是分析函数,不是普通的聚合函数
1.3分析子句: over关键字后面括号内的内容为分析子句,包含以下三部分内容.
partition by :分组子句,表示分析函数的计算范围,各组之间互不相干
order by:排序子句,表示分组后,组内的排序方式
rows/range: 窗口子句,是在分组(partition by)后,表示组内的子分组(也即窗口),是分析函数的计算范围窗口
2案例:
2.1 rank()排名函数案例:
package sparkSql
import java.util.Properties
import org.apache.spark.sql.{DataFrame, SparkSession}
object sparkSql_fenxi {
def main(args: Array[String]): Unit = {
val spark = SparkSession
.builder().master("local[2]")
.appName("Spark SQL anal