[pyar] Transformando CSV en lista

Alfonso Rey alfonso.rey en gmail.com
Vie Mayo 27 04:03:41 ART 2016


Buenos días Gustavo,

efectivamente, esa fue una de mis preguntas al profesor y su respuesta
es que en esta práctica quiere que hagamos uso de map. Estamos
trabajando con una máquina virtual donde tenemos hadoop, spark y
programamos directametne en un jupyter notebook. Se nos pide que
tiremos de las transformaciones soportadas por Spark que aparecen en
esta página:
https://spark.apache.org/docs/latest/programming-guide.html#transformations

Básicamente quiere que hagamos uso de map y de la función lambda.
Hasta ahora lo que llevo conseguido es lo siguiente:

uber = sc.textFile("hdfs://localhost:9000/user/hadoop/uber.csv")

El ejercicio en cuestión nos pide separar los elementos del RDD en una
lista pasando de user una cadena unicode a una lista de elementos
unicode:

uber_parsed = uber.map(lambda line: line.split(","))

Y con esto obtengo [u'B02617',u'2015-05-17
09:47:00',u'B02617',u'141',u'Manhattan',u'Lenox Hill West'] que
supongo que es lo que me piden... que por cierto, no consigo encontrar
qué significa esa u' ¿que es unicode?

Si hago print type(uber_parsed.first()) me dice <type 'unicode'>


Y después el siguiente ejercicio es convertir cada elemento en su tipo
correspondiente: de nuevo, tuve que utilizar map aunque no sé como
hacer que string sea utf-8

uber_converted = uber_parsed.map(lambda line: (str(line[0]),
datetime.strptime(line[1], "%Y-%m-%d %H:%M:%S"), str(line[2]),
int(line[3]), str(line[4]), str(line[5])))

Si hago print type(uber_parsed.converted()) me dice <type 'tuple>


No sé si lo estoy haciendo bien pero me está costando horrores
entenderlo. El objetivo de esto, según el profesor, es trabajar con
mapreduce para consultar esta lista o tupla ahora, no sé, para sacar
información del estilo, viajes por días de la semana o el código que
más veces se repite.

Ahora me toca averiguar como demonios puedo acceder a los datos de
uber_parsed para sacar esas consultas.

Muchas gracias al foro. Gracias a los mensajes que van llegando al
buzón puedo entender poco a poco como funciona python...

Gracias compañeros.

Alfonso


2016-05-26 18:54 GMT+02:00 Gustavo Campanelli <gedece en gmail.com>:
>
> 2016-05-25 20:06 GMT-03:00 Manuel Kaufmann <humitos en gmail.com>:
>>
>> El 25/05/16 a las 06:43, Alfonso Rey escribió:
>>>
>>> estoy realizando un ejercicio para clase en el que cargo un archivo
>>> csv en un RDD con sc.textfile
>>>
>>> variable = sc.textfile("hdfs://localhost:9000/user/hadoop/file.csv")
>>
>>
>> Modo 100% sincertidad: no tengo ni idea que es un RDD ni como estás
>> accediendo a ese archivo pero si es un archivo CSV como tal, ¿porque en vez
>> de hacer esto ...
>>
>>> variable_parsed = variable.map(lambda line: line.split(",")) y obtengo
>>
>>
>>
>> no usás el módulo csv de Python?
>>
>> https://docs.python.org/3/library/csv.html
>>
>> Saludos,
>>
>>
>> --
>>
>> Kaufmann Manuel
>> -- http://elblogdehumitos.com.ar/
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
> RDD parece ser Removable Disk Drive en el contexto en el que es usado.
>
> Gedece
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar



-- 
Alfonso Rey
alfonso.rey en gmail.com


Más información sobre la lista de distribución pyar