一個問題:如何在 pyspark 上將行轉換為列?我的原始資料框如下所示:
ID | DATE | APP | DOWNLOADS | ACTIVE_USERS
___________________________________________________________
0 | 2021-01-10 | FACEBOOK | 1000 | 5000
1 | 2021-01-10 | INSTAGRAM | 9000 | 90000
2 | 2021-02-10 | FACEBOOK | 9000 | 72000
3 | 2021-02-10 | INSTAGRAM | 16000 | 500000
但我需要這樣:
ID | DATE | FACEBOOK - DOWNLOADS | FACEBOOK - ACTIVE_USERS | INSTAGRAM - DOWNLOADS | INSTAGRAM - ACTIVE_USERS
___________________________________________________________________________________________________________________
0 | 2021-01-10 | 1000 | 5000 | 9000 | 90000
1 | 2021-02-10 | 9000 | 72000 | 16000 | 50000
我嘗試使用這個問題的答案:Transpose pyspark rows into columns,但我無法讓它作業。
請問你能幫幫我嗎?謝謝!
uj5u.com熱心網友回復:
從您的示例中,我假設不需要對“ID”列進行分組,因為它看起來會在您的結果中重置。這將使查詢類似于以下內容:
import pyspark.sql.functions as F
df.groupBy("DATE").pivot('APP').agg(
F.first('DOWNLOADS').alias("DOWNLOADS"),
F.first("ACTIVE_USERS").alias("ACTIVE_USERS")
)
我們按日期分組并以應用為中心,檢索下載量和活躍用戶的第一個值。
結果:
---------- ------------------ --------------------- ------------------- ----------------------
| DATE|FACEBOOK_DOWNLOADS|FACEBOOK_ACTIVE_USERS|INSTAGRAM_DOWNLOADS|INSTAGRAM_ACTIVE_USERS|
---------- ------------------ --------------------- ------------------- ----------------------
|2021-02-10| 9000| 72000| 16000| 500000|
|2021-01-10| 1000| 5000| 9000| 90000|
---------- ------------------ --------------------- ------------------- ----------------------
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/325904.html
下一篇:轉換為資料框,初學者問題
