Bazı hesaplamalar yapmak için Apache Spark kullanıyorum. Böyle bir sorguyu çalıştırıyorum. (Ülkeye + school_id tarafından temsil edilir) her okul için ŞimdiKıvılcımda foreachGroup metodu gibi bir fonksiyon var mı?
USA, school1, math, 99
USA, school1, sport, 98
USA, school2, math, 90
ENG, school1, science, 100
, onların skoruna göre ilk 3 konuyu almak gerekir:
SELECT country, school, subjects, avg(score) FROM table GROUP BY country,school,subject
Yani sonuç gibidir.
Bunu yapmanın iki yolunu düşünüyorum.
1. If there is some method called foreachGROUP, Then I will run code like
result.foreachGROUP(get_top_3)
2. I know there is a method called repartion. Then I guess I can do something like :
result.repartion(country,school) # repartion by country and school
foreachPartion(get_top_3)
Apache kıvılcımına aşina değilim. Yani hangi yolun mümkün veya daha iyi olduğundan emin değilsiniz. Lütfen biraz tavsiye verin. Bundan daha iyi bir yolun varsa. Eğer test verilerini oluşturduktan sonra da adivce
Teşekkür David. Scala veya JAVA kullanıyor musunuz? Çünkü bu ikisine aşina değilim. Python kullanıyorum. Python ile bazı örnekler verebilir misiniz? –