Kelime frekanslarını yazdır
Aynı anahtara (kelime) sahip değerleri (sayımları) birleştirdikten sonra, bu egzersizde ilk 10 kelime frekansını döndüreceksin. Tüm öğeleri bir seferde collect() ile çekebilirdin, ancak bu kötü bir pratiktir ve önerilmez. RDD'ler çok büyük olabilir: belleğin tükenir ve bilgisayarın çökebilir..
Peki ya en çok geçen 10 kelimeyi döndürmek istersek? Bunun için önce anahtar (kelime) ile değeri (sayımlar) yer değiştirmelisin; böylece anahtar sayım, değer ise kelime olur. Şu anda result_RDD içinde anahtar 0. öğe, değer 1. öğe. Demette anahtar ve değeri yer değiştirdikten sonra, eşli RDD'yi anahtara (sayıma) göre sıralayacaksın. Bu sayede PySpark'ta sortByKey işlemi yerine RDD'yi anahtara göre sıralamak kolay olur. Son olarak, sıralanmış RDD'den frekanslarına göre en çok geçen 10 kelimeyi döndüreceksin.
Çalışma alanında zaten bir SparkContext sc ve resultRDD bulunuyor.
Bu egzersiz
PySpark ile Big Data Temelleri
kursunun bir parçasıdırEgzersiz talimatları
resultRDDRDD'sinden ilk 10 kelimeyi ve frekanslarını yazdır.resultRDDiçindeki anahtarları ve değerleri yer değiştir.- Anahtarları azalan düzene göre sırala.
- Sıralanmış RDD'den en sık geçen 10 kelimeyi ve frekanslarını yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Display the first 10 words and their frequencies from the input RDD
for word in resultRDD.____(10):
print(word)
# Swap the keys and values from the input RDD
resultRDD_swap = resultRDD.____(lambda x: (x[1], x[____]))
# Sort the keys in descending order
resultRDD_swap_sort = resultRDD_swap.____(ascending=False)
# Show the top 10 most frequent words and their frequencies from the sorted RDD
for word in resultRDD_swap_sort.____(____):
print("{},{}". format(____, word[0]))