Výpis frekvencí slov
Po sloučení hodnot (počtů) se stejným klíčem (slovem) teď vrátíš prvních 10 frekvencí slov. Všechny prvky najednou bys mohl/a získat pomocí collect(), ale to se nedoporučuje a považuje se to za špatnou praxi. RDD mohou být obrovská – snadno ti dojde paměť a počítač přestane reagovat.
Co kdybychom chtěli vrátit 10 nejčastějších slov? K tomu nejdřív prohodíš klíč (slovo) a hodnotu (počet) tak, aby klíčem byl počet a hodnotou slovo. V tuto chvíli má result_RDD klíč jako prvek 0 a hodnotu jako prvek 1. Po prohození klíče a hodnoty v n-tici seřadíš párové RDD podle klíče (počtu). Díky tomu je řazení RDD podle klíče snazší než použití operace sortByKey v PySparku. Nakonec vrátíš 10 slov s nejvyšší frekvencí z seřazeného RDD.
V pracovním prostředí máš k dispozici SparkContext sc a resultRDD.
Toto cvičení je součástí kurzu
Big Data Fundamentals with PySpark
Pokyny k cvičení
- Vypiš prvních 10 slov a jejich frekvence z RDD
resultRDD. - Prohoď klíče a hodnoty v
resultRDD. - Seřaď klíče sestupně.
- Vypiš 10 nejčastějších slov a jejich frekvence ze seřazeného RDD.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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]))