Imprimir frecuencias de palabras
Después de combinar los valores (recuentos) con la misma clave (palabra), en este ejercicio obtendrás las 10 primeras frecuencias de palabras. Podrías haber recuperado todos los elementos a la vez utilizando collect(), pero es una mala práctica y no se recomienda. Los RDD pueden ser enormes: puedes quedarte sin memoria y bloquear el ordenador.
¿Y si queremos obtener las 10 palabras principales? Para ello, primero tendrás que intercambiar la clave (palabra) y los valores (recuentos) de modo que las claves sean el recuento y el valor sea la palabra. Ahora mismo, result_RDD
tiene la clave como elemento 0 y el valor como elemento 1. Después de que intercambies la clave y el valor en la tupla, ordenarás el par RDD en función de la clave (recuento). Así resulta sencillo ordenar el RDD en función de la clave en lugar de utilizar la operación sortByKey
en PySpark. Por último, obtendrás las 10 palabras principales en función de sus frecuencias a partir del RDD ordenado.
Ya tienes sc
y resultRDD
de SparkContext disponibles en tu espacio de trabajo.
Este ejercicio forma parte del curso
Fundamentos de big data con PySpark
Instrucciones de ejercicio
- Imprime las 10 primeras palabras del RDD
resultRDD
y sus frecuencias. - Intercambia las claves y los valores en
resultRDD
. - Ordena las claves en orden descendente.
- Imprime las 10 palabras más frecuentes del RDD ordenado y sus frecuencias.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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]))