本文源自一位群友的一道美團面試題,解題思路(基於倒排索引)和**都是這位大佬(相對於尚處於小白階段的我)寫的,我只是在基於倒排索引的基礎上幫忙想出了最後一步思路,感覺這個解題思路不錯,值得記錄一下。
2017-01-01
a2017-01-01 b
2017-01-01 c
2017-01-02
a2017-01-02 b
2017-01-02 d
2017-01-03 b
2017-01-03 e
2017-01-03 f
根據資料可以看出我們要求的結果為:
2017-01-01 新增三個使用者(a,b,c)
2017-01-02 新增乙個使用者(d)
2017-01-03 新增兩個使用者(e,f)
結果如下:
使用者名列一
列二列三
a2017-01-01
2017-01-02
b2017-01-01
2017-01-02
2017-01-03
c2017-01-01
d2017-01-02
e2017-01-03
f2017-01-03
這樣我們只看列一,統計每個日期在列一出現的次數,即為對應日期新增使用者數。
package com.dkl.leanring.spark.test
import org.apache.spark.sql.sparksession
object
newuvdemo
}
結果:
(2017-01-03,2)
(2017-01-02,1)
(2017-01-01,3)
附圖:
實現統計某個月內每天新增使用者數的方法
現在有乙個需求 管理員選擇某乙個月份,然後顯示這個月每天的新增使用者數。首先獲得管理員選擇的日期,然後獲得本月的起始時間戳和結束時間戳,在通過和member表中的addtime欄位進行比較,從而獲得當月新增的使用者列表,這個是不難實現的。那麼要怎麼獲得每日的新增使用者數量呢?如果要用select c...
實現統計某個月內每天新增使用者數的方法
如今有乙個需求 管理員選擇某乙個月份,然後顯示這個月每天的新增使用者數。首先獲得管理員選擇的日期,然後獲得本月的起始時間戳和結束時間戳,在通過和member表中的addtime欄位進行比較,從而獲得當月新增的使用者列表。這個是不難實現的。那麼要怎麼獲得每日的新增使用者數量呢?假設要用select c...
併發使用者數和QPS
關於併發使用者數和qps,自己一直被這兩個概念糾結,閱讀了一下相關資料,總結如下 併發 使用者數和qps兩個概念沒有直接關係,但是如果要說qps時,一定需要指明是多少併發使用者數下的qps,否則豪無意義,因為單使用者數的40qps和20並 發使用者數下的40qps是兩個不同的概念。前者說明該應用可以...