python

Python y big data

Al paso que R ha sido de forma tradicional el lenguaje de programación escogido por los científicos de datos, poquito a poco va cediendo terreno a Python.
Aunque hay múltiples razones para el cambio, quizá la más esencial es que Python es de empleo general y de manera comparativa más simple de aprender, al tiempo que R prosigue siendo un ambiente de programación bastante complejo de dominar. En un planeta poco a poco más dependiente de los datos y con “hambre” de científicos de datos, lo simple gana.

Python-Programming-Language

R no es verdaderamente un lenguaje

Una de las razones por la que a la gente le cuesta aprender R es por el hecho de que no es verdaderamente un lenguaje de programación. R es más bien un ambiente interactivo para hacer estadísticas, y es por esta razón que sea considerablemente más bastante difícil para los aspirantes a desarrolladores captar sus matices.

Mas R es bastante difícil aun para personas con experiencia en instrumentos estadísticos como SAS y SPSS, como resalta Bob Muenchen. “R reduce probablemente la dificultad de esta clase de análisis, en tanto que incorpora los lenguajes de macros y de matrices, entre otras muchas cosas, que herramientas como SPSS requieren el propio usuario domine. Mas para aquellos que aguardan que R funcione como Stata, siento decirles que no es así”.

Por lo general, R es diferente, lo que hace que sea bastante difícil.

Python es considerablemente más alcanzable

Python, no obstante, es considerablemente más alcanzable. Por una parte, un extenso abanico de desarrolladores están familiarizados con Python y lo usan para una extensa gama de aplicaciones. En contraste a R, que prácticamente solo se emplea para el análisis de datos, un desarrollador puede iniciar de manera rápida a probar con Python.

Las compañías cada vez dan más relevancia a los datos y luchan por hallar los científicos de datos más cualificados. Frecuentemente, no obstante, semejantes científicos de datos pueden estar ya trabajando en la propia empresa y probablemente tengan alguna familiaridad con Python. Dada la relevancia de un buen análisis de datos, la capacitación en las tecnologías Big Data apropiadas es considerablemente más eficaz que contratar y formar nuevos científicos de datos en programas más complejos.

Beneficios de Python

Uno de los mayores beneficios de hacer ciencia de datos en Python es la eficacia de la utilización de un lenguaje de programación mediante diferentes aplicaciones. Tal Yarkoni, estudioso asociado en la Universidad de Texas, explica:

“Hacer todo el desarrollo y análisis en un mismo lenguaje aporta un importante beneficio. Cuando haces todo en un mismo lenguaje, no debes padecer el incesante cambio de contexto y el tiempo perdido que acarrea. Además de esto, tampoco precisas preocuparte sobre la interfaz a emplear por diferentes lenguajes y en diferentes unas partes del código. No hay solamente molesto que parsear texto en Python y caer en la cuenta que debes redactar en el disco en un formato diferente solo para poder manejarlo con R o bien MATLAB. Esto puede no parecer un enorme inconveniente (no lleva bastante tiempo redactar un CSV o bien JSON con Python y leerlo desde R) mas son cosas que van sumando.”

Por más que podamos loar tecnología de nicho que soluciona un inconveniente realmente bien, las tecnologías que tienden a ganar son las herramientas de empleo general que resuelven una serie de inconvenientes. Conforme el directivo de Optimización y Análisis de AppNexus, David Himrod, “Uno de los mayores desafíos a los que AppNexus se encara es de qué forma lograr un conjunto distintos de empleados que trabajen con exactamente la misma tecnología. Python da a los empleados de diferentes orígenes (particularmente los ingenieros, matemáticos y analistas) un lenguaje común, simple de comprender que se puede emplear para crear prototipos de nuevas funcionalidades para la empresa”.

La Ciencia de Datos y Python

A Python aún le falta algo de la riqueza de R para el análisis de datos, mas se está acercando de manera rápida. La clave para el éxito de Python no necesariamente es su capacidad para hacer en frente de las funciones más arcanas de R (o bien cualquier otra herramienta de análisis), sino su proximidad y su empleo general. La ciencia de datos se mueve fuera de la esfera de los “geeks alfa”, algo que fue meridianamente evidente en la conferencia de O’Reilly Strata en la ciudad de Nueva York el mes pasado. Los Doctores acostumbraban a ocupar sus salas, al paso que ahora los analistas y demás personas encargadas por sus empresas para descubrir sobre Big Data, formaban la mayor parte de los asistentes.

Y esta nueva mayoría de científicos de datos resulta más probable que utilicen Python que R. Como en otros mercados, las herramientas que conocemos o bien que son simples de aprender tienen más probabilidades de ganar.

big-data

Big data, soluciones a retos

Actualmente las empresas se ven con nuevos problemas que anteriormente no tenían. Nuevos tipos de datos, nuevas exigencias de rendimiento a la hora de procesamiento, nuevos enfoques de soluciones BI… por ello, han surgido diferentes propuestas para atacar problemas concretos comentados en el post anterior. No sustituyen a las BD Relacionales ni a los procesos de creación de proyectos BI, sino que son “herramientas” con las que podemos trabajar para resolver con mayor eficacia esos problemas.

Bases de dato big data

Son nuevos datos y nuevas formas de almacenar estos datos que surgen en la actualidad. Por ello, surgen nuevos gestores como los NoSQL que buscan dar solución a los 3 problemas anteriores (escalabilidad, heterogeneidad y rendimiento). Por ejemplo, las BD clave-valor consiguen almacenar de forma sencilla diferentes tipos de datos no estructurados, sería un símil a tener una fila con 2 columnas y después una fila con columnas dinámicas. Esto en las relacionales es impensable. En un punto posterior se analizarán estas bases de datos propuestas.

Sistema de archivos distribuido para garantizar escalabilidad.

El problema de la reducción de datos ha sido uno de los grandes problemas de Google al inicio de su actividad. Necesitaban procesar millones de millones de páginas para poder obtener el resultado de su PageRank de forma resumida, por lo tanto crearon un algoritmo el cual conseguía resumir de forma sencilla todos esos datos. Crearon el corazón del BigData, el concepto del algoritmo MapReduce . Después llegó Yahoo y creó la cáscara que envuelve el MapReduce, comúnmente llamado Hadoop. La gran base que garantiza ejecutar programas MapReduce hechos por usuarios en nodos distribuidos. Esta herramienta tiene un sistema de archivos HDFS el cual provee la distribución de trabajos a diferentes nodos que ejecutarán en 8 paralelo este algoritmo de reducción.

Una de las cosas más importantes es que el HDFS consigue hacer transparente o simplificar la creación de clusters de nodos que trabajan en paralelo como un nodo solo. Si necesitas más potencia es simplemente añadir una nueva IP de un nodo en un fichero. Fácil y sencillo. Este sistema HDFS es la base del BigData pues están surgiendo y se desarrollan herramientas que son ejecutadas encima de este sistema HDFS pudiendo obtener aplicaciones distribuidas. Las más importantes son las BD como HBASE o HIVE (que realmente no es una BD sino un intérprete SQL que traduce MapReduce). Son dos herramientas que se ejecutan encima del HDFS de forma sencilla pero que actúan sobre un cluster de N nodos con transparencia. Si necesitamos más potencia o espacio añadimos un nuevo nodo como anteriormente. Las consultas irán más rápido conforme añadamos nodos a nuestro cluster. La famosa teoría del DIVIDE Y VENCERÁS .