Creează un RDD de bază și transformă-l
Volumul datelor nestructurate (fișiere jurnal, imagini, fișiere binare) este în creștere rapidă, iar PySpark este un framework excelent pentru analiza acestui tip de date prin intermediul RDD-urilor. În acest exercițiu format din 3 părți, vei scrie cod care calculează cele mai frecvente cuvinte din Operele complete ale lui William Shakespeare.
Iată pașii principali pentru a scrie programul de numărare a cuvintelor:
- Creează un RDD de bază din fișierul
Complete_Shakespeare.txt. - Folosește o transformare RDD pentru a obține o listă lungă de cuvinte din fiecare element al RDD-ului de bază.
- Elimină cuvintele de stopare din date.
- Creează un RDD de perechi în care fiecare element este un tuplu de tipul
('w', 1). - Grupează elementele RDD-ului de perechi după cheie (cuvânt) și adună valorile corespunzătoare.
- Inversează cheile (cuvânt) și valorile (numărul de apariții), astfel încât cheia să fie numărul de apariții, iar valoarea să fie cuvântul.
- În final, sortează RDD-ul în ordine descrescătoare și afișează cele mai frecvente 10 cuvinte împreună cu frecvențele lor.
În acest prim exercițiu, vei crea un RDD de bază din fișierul Complete_Shakespeare.txt și îl vei transforma pentru a obține o listă lungă de cuvinte.
Amintește-ți că ai deja un SparkContext sc disponibil în spațiul tău de lucru. Variabila file_path (care reprezintă calea către fișierul Complete_Shakespeare.txt) este și ea încărcată pentru tine.
Acest exercițiu face parte din cursul
Fundamentele Big Data cu PySpark
Instrucțiuni pentru exercițiu
- Creează un RDD numit
baseRDDcare citește liniile dinfile_path. - Transformă
baseRDDîntr-o listă lungă de cuvinte și creează un nousplitRDD. - Numără totalul de cuvinte din
splitRDD.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Create a baseRDD from the file path
baseRDD = sc.____(file_path)
# Split the lines of baseRDD into words
splitRDD = baseRDD.____(lambda x: x.split())
# Count the total number of words
print("Total number of words in splitRDD:", splitRDD.____())