Foro Formación Hadoop
Dudas con ejercicios Módulo 3
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,
Redes sociales