Pour lire plus avant à propos d’Apache Spark, Sean Owen, de Cloudera a écrit un post en mars dernier expliquant la valeur ajoutée d’Apache Spark :
L’éventail des outils disponibles pour les Data Scientists est une histoire de compromis malheureux:
- R offre un environnement riche pour l’analyse statistique et l’apprentissage machine, mais il est quelque peu brut lors de l’exécution de nombreuses tâches de traitement de données et de nettoyages nécessaires avant que l’analyse réelle ne puisse commencer. Comme langage, il n’est pas similaires aux langages dominants que les développeurs connaissent.
- Python est un langage de programmation général avec d’excellentes bibliothèques pour l’analyse des données comme Pandas et scikit-learn. Mais comme R, il est toujours limité à une quantité de données qui tient dans une seule machine.
- Il est possible de développer des algorithmes d’apprentissage machine distribués avec le classique framework de calculs MapReduce avec Hadoop (cf. Apache Mahout). Mais MapReduce est notoirement bas niveau et difficile pour exprimer des calculs complexes.
- Apache Crunch offre une API Java plus aisée, idiomatique pour exprimer des calculs MapReduce. Mais là encore, la nature de MapReduce le rend inefficace pour les calculs itératifs, et la plupart des algorithmes d’apprentissage machine ont une composante itérative.
Et ainsi de suite. Il y a à la fois des lacunes et des chevauchements entre ces derniers et d’autres outils de science de données. Issu d’un milieu Java et Hadoop, je me demande parfois avec envie : pourquoi ne pouvons-nous pas avoir un bel environnement de recherche analytique à la REPL comme ont les utilisateurs Python et R ? Qui plus est évolutif et distribué ? Et la belle conception de collections distribuées de Crunch ? Et qui peut également être utilisé dans des contextes opérationnels ?
vendredi 19 juin 2015
Copyright © 2015-2018 Selected Links | RSS | Twitter | Liste de liens | Version anglaise