簡體   English   中英

Spark Dataframe按操作分組並從每個組中選擇N個值

[英]Spark Dataframe Group By Operation and Picking N values from each group

我有以下結構的spark數據框:

Operation|RequestURL|RequestBody|IsGetRequest|IsPostRequest

和一個變量: val n = 100

我想在數據框中的“ Operation列上執行“ Group-by依據”。 然后,我想為每個組中的n請求(無順序)獲取RequestURLRequestBody列(為此創建一個新的data-frame/rdd/map )。 如果一個組的請求數少於n,則我想復制該組中的某些行,以確保我從每個組獲取的請求數相同。

需要幫助以最佳方式弄清楚如何做到這一點。 我願意使用任何語言( python/scala ),並且也可以將數據框轉換為pandas或鍵和值的哈希映射,如果不可能使用spark data-frame來完成的話。

我已經看到了一些使用分組和排序的堆棧溢出解決方案,然后使用Windows分區功能來獲取topN值。 我的問題有何不同-就我而言,沒有ordering 另外,我想確保從每個組中fetching equal number of requests

使用Windows分區功能解決了。 隨后,使用groupBy()和toMap函數將結果數據集轉換為[String,List(Strings)]的地圖,遍歷地圖並使用列表操作復制行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM