¿Podemos hacer aprendizaje automático escalable con R? ¿Puede R trabajar con Hadoop para procesar una matriz de 100 GB?

¡La respuesta en 2017 es un gran SÍ!

La forma de hacerlo es usando sparklyr, una interfaz para Spark usando RStudio.

La biblioteca MLB de sparklyr le proporciona todas las herramientas y controles que necesita para ejecutar paradigmas de aprendizaje automático en cualquier tamaño de datos en tiempo real o retrospectivos.

Biblioteca de aprendizaje automático de Spark (MLlib)

En sus propias palabras,

sparklyr proporciona enlaces a la biblioteca distribuida de aprendizaje automático de Spark. En particular, sparklyr le permite acceder a las rutinas de aprendizaje automático proporcionadas por el paquete spark.ml. Junto con la interfaz dplyr de sparklyr, puede crear y ajustar fácilmente flujos de trabajo de aprendizaje automático en Spark, orquestado completamente dentro de R.

sparklyr proporciona tres familias de funciones que puede usar con el aprendizaje automático de Spark:

  • Algoritmos de aprendizaje automático para analizar datos ( ml_* )
  • Transformadores de características para manipular características individuales ( ft_* )
  • Funciones para manipular Spark DataFrames ( sdf_* )

Hasta donde yo sé, el código abierto R no puede funcionar con tanto volumen de datos, debido a su enfoque de procesamiento en memoria.
pero tenemos las siguientes alternativas:
1) RevolutionAnalytics / RHadoop : el proyecto de Antonio Piccolboni tiene como objetivo llevar el poder del mapa a R.
2) Patrón | Cascada: una vez que tenga su modelo listo, puede exportarlo a un archivo PMML y luego usar esa biblioteca de patrones en cascada para calificar sus datos almacenados en HDFS. Internamente, Pattern utiliza Java Map Reduce, por lo que este volumen no debería ser un problema.
3) Consulte también los paquetes bigmemory y ff de R. Proporciona soporte para manejar archivos grandes. Pero eso es alrededor de 10 GB de datos.
Una vez más, este es mi entendimiento, estaría más que feliz de saber si hay mejores opciones.

¿Puede informar una tarea de ejemplo con 100 GB de datos?

Observo que cada vez más personas parecen preocuparse demasiado por el tamaño de sus datos cuando no deberían.

Puede encontrar útil el siguiente artículo: no use Hadoop; sus datos no son tan grandes.

Además, ¿cuál es su idea sobre que las grandes empresas como MS y Yahoo a menudo encuentran más eficiente realizar análisis en un único servidor dedicado en lugar de máquinas distribuidas? Para hacerlo, sus datos deben procesarse de manera eficiente, pero este tipo de trabajo no pertenece a R, SPSS, SAS, Python …