Foro Formación Hadoop

 
 
Imagen de Fernando Agudo
Re: Dudas con ejercicios Módulo 3
de Fernando Agudo - viernes, 14 de julio de 2017, 08:32
 

Hola Alfonso,

A la primera pregunta, esa "u" extraña es debido a que es una tupla en Unicode (https://docs.python.org/2/howto/unicode.html), dentro de un array [....] que es lo que devuelve el take.

Si necesitaras acceder a las tuplas del array que te ha devuelto el take para mostrarlo por pantalla de manera "bonita", podrías hacer los siguiente:

 

result = userreqs.map(lambda pair: (pair[1],pair[0])).sortByKey(False).take(10)

for x in result: print str(x[0])+"...."+str(x[1])

El código anterior te asigna el resultado a una variable "result" y posteriormente recorremos esa variable con el for para ir mostrando los 2 elementos de cada una de las posiciones del array.

 

La segunda pregunta es igual que la anterior. El take te devuelve un array compuesto por registros/tuplas donde el segundo valor es un interador. Si quisieras ver las ips, deberías recorrer cada uno de los valores-iteradores con un buque for de la siguiente manera:

for (ids,ips) in userips.take(10):
   print "---" ,ids
   for ip in ips: print ip

 

Recuerda que todas estas operaciones ya se realizan en el driver (cliente), debido a que hemos "extraído" del procesamiento de Spark con el take y a partir de ese momento ya estaríamos trabajando con python "normal".

Un saludo,