ComenzarEmpieza gratis

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

Ver curso

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]))
Editar y ejecutar código