Ta bort stoppord och reducera datamängden
I den här övningen tar du bort stoppord från din data. Stoppord är vanliga ord som ofta saknar analytiskt intresse – till exempel "I", "the" och "a". Du kan ta bort många uppenbara stoppord med en egen lista, men i den här övningen använder du en färdig lista, stop_words, som finns tillgänglig i din miljö.
När stopporden är borttagna skapar du ett par-RDD där varje element är en paren-tuppel (k, v), där k är nyckeln och v är värdet. I det här exemplet består par-RDD:t av (w, 1), där w är ett ord i RDD:t och 1 är ett tal. Slutligen kombinerar du värdena med samma nyckel i par-RDD:t för att räkna antalet förekomster av varje ord.
Kom ihåg att du redan har ett SparkContext sc och splitRDD tillgängliga i din arbetsyta, tillsammans med listvariabeln stop_words.
Den här övningen är en del av kursen
Grunderna i Big Data med PySpark
Övningsinstruktioner
- Filtrera
splitRDDoch ta bort stopporden som finns listade i variabelnstop_words. - Skapa en par-RDD-tuppel som innehåller ordet (med iteratorn
w) och siffran1för varje ordelement isplitRDD. - Beräkna antalet förekomster av varje ord (ordfrekvens) i par-RDD:t. Använd en transformation som arbetar med nyckel-värde-par (k, v). Tänk noga på vilken funktion som passar här.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Filter splitRDD to remove stop words from the stop_words curated list
splitRDD_no_stop = splitRDD.____(lambda x: x.lower() not in ____)
# Create a tuple of the word (w) and 1
splitRDD_no_stop_words = splitRDD_no_stop.map(lambda w: (____, ____))
# Count of the number of occurences of each word
resultRDD = splitRDD_no_stop_words.____(lambda x, y: x + y)