sparkSQL 统计TopN
生活随笔
收集整理的這篇文章主要介紹了
sparkSQL 统计TopN
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原始數據如下:
需求:按天統計uid。
main方法:
方式一:使用DataFrame
/*** 最受歡迎的TopN netType* @param spark* @param accessDF*/def netTypeAccessTopNStat(spark: SparkSession, accessDF: DataFrame): Unit = {val wifiAccessTopNDF = accessDF.filter(accessDF.col("day") === "20190702" && accessDF.col("netType") === "wifi").groupBy("day", "uid").agg(count("uid").as("times")).orderBy(desc("times"))wifiAccessTopNDF.show(false)}方式二:使用sparkSQL
def netTypeAccessTopNStat(spark: SparkSession, accessDF: DataFrame): Unit = {accessDF.createOrReplaceTempView("access_logs")val wifiAccessTopNDF = spark.sql("select day,uid,count(1) as times from access_logs where day='20190702' and netType='wifi' group by day,uid order by times desc")wifiAccessTopNDF.show(false)}兩種方式都可以實現TopN,控制臺打印結果如下:
總結
以上是生活随笔為你收集整理的sparkSQL 统计TopN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SparkSQL读取文件时,数据字段类型
- 下一篇: SparkSQL 将统计结果保存到Mys