我有以下架構火花查詢在地圖上
|-- Name: string (nullable = true)
|-- Attendance: long (nullable = true)
|-- Efficiency: map (nullable = true)
| |-- key: string
| |-- value: double (valueContainsNull = true)
凡效率值的範圍從-1到+1,密鑰爲不同類別,例如體育,學術等鑲木文件的所有鍵我有多達20個不同的鑰匙。
我想獲取排名前100名的出勤率,其效率[關鍵]小於0. 我能夠爲一個關鍵點做到這一點。但我無法弄清楚我應該如何爲我的所有密鑰同時實現這一點。 代碼段一個鍵:
spark.sql("select Name,Attendance,Efficiency['Sports'] from data where Efficiency['Sports'] < 0 order by Attendance desc limit 100")
在做了一些分析,我發現,我們需要爆炸我們的地圖。但是,每當我爆炸我的表中的行數增加,我無法獲取前100名。
一個鍵的樣本數據。實際的表有地圖而不是在這裏看到一列
+--------------------+------------------+-------------+
|Name |Attendance |Efficiency[Sports]|
+--------------------+------------------+-------------+
|A |1000 |0.002 |
|B |365 |0.0 |
|C |1080 |0.193 |
|D |245 |-0.002 |
|E |1080 |-0.515 |
|F |905 |0.0 |
|G |900 |-0.001 |
預期輸出:100名的名單上解決這個倒很樂於助人
每個鍵+-----------------------+--------------+
|Sports |Academics |
+-----------------------+--------------+
|A |A |
|B |C |
|C |D |
|D |E |
任何幫助
感謝
請與一個鍵你試過代碼更新。 –
我已更新該問題以包含一個密鑰的代碼! – Vignesh
您還可以顯示效率值 –