Skriv ut ordfrekvenser
Nu när du har kombinerat värdena (räkningarna) med samma nyckel (ord) ska du i den här övningen returnera de första 10 ordfrekvenserna. Du hade kunnat hämta alla element på en gång med collect(), men det är dålig praxis och rekommenderas inte. RDD:er kan vara enorma – du riskerar att få slut på minne och krascha din dator.
Vad gör vi om vi vill returnera de 10 vanligaste orden? För det behöver du först byta plats på nyckeln (ord) och värdet (räkning), så att nyckeln blir räkningen och värdet blir ordet. Just nu har result_RDD nyckeln som element 0 och värdet som element 1. När du har bytt plats på nyckeln och värdet i tupeln sorterar du det parade RDD:t baserat på nyckeln (räkningen). På det här sättet är det enkelt att sortera RDD:t efter nyckel utan att använda sortByKey-operationen i PySpark. Slutligen returnerar du de 10 vanligaste orden baserat på deras frekvenser från det sorterade RDD:t.
Du har redan ett SparkContext sc och resultRDD tillgängliga i din arbetsyta.
Den här övningen är en del av kursen
Grunderna i Big Data med PySpark
Övningsinstruktioner
- Skriv ut de första 10 orden och deras frekvenser från RDD:t
resultRDD. - Byt plats på nycklarna och värdena i
resultRDD. - Sortera nycklarna i fallande ordning.
- Skriv ut de 10 vanligaste orden och deras frekvenser från det sorterade RDD:t.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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]))