R possède de nombreuses bibliothèques destinées à l’analyse de données (par exemple, JAGS, BUGS, ARULES, etc.), et est mentionné dans des manuels populaires tels que: J.Krusche, Doing Bayesian Data Analysis; B.Lantz, "Machine Learning avec R".
J'ai observé une directive de 5 To pour qu'un jeu de données soit considéré comme du Big Data.
Ma question est la suivante: R convient-il à la quantité de données généralement rencontrée dans les problèmes de Big Data? Existe-t-il des stratégies à utiliser lors de l’utilisation de R avec cette taille de jeu de données?
Réponses:
En fait, ça vient. Dans le livre R en bref, il y a même une section sur l’utilisation de R avec Hadoop pour le traitement de données volumineuses. Il y a des problèmes à résoudre car R effectue tout son travail en mémoire, vous êtes donc limité à la quantité de RAM dont vous disposez.
RHadoop est un projet mature pour R et Hadoop
RHadoop a été divisé en plusieurs sous-projets, rhdfs, rhbase, rmr2, plyrmr et quickcheck ( wiki ).
la source
Le principal problème lié à l’utilisation de R pour les grands ensembles de données est la contrainte de RAM. La raison derrière la conservation de toutes les données dans la RAM est qu’elle permet un accès et une manipulation des données beaucoup plus rapides que le stockage sur des disques durs. Si vous êtes prêt à prendre un coup sur la performance, alors oui, il est tout à fait pratique de travailler avec de grands ensembles de données dans R .
la source
Quelques bonnes réponses ici. J'aimerais participer à la discussion en ajoutant les trois notes suivantes :
L'accent mis par la question sur le volume de données tout en faisant référence au Big Data est certainement compréhensible et valable, compte tenu en particulier du problème de la croissance du volume de données dépassant la croissance exponentielle des capacités technologiques selon la loi de Moore ( http://en.wikipedia.org/wiki/Moore % 27s_law ).
Cela dit, il est important de garder à l’esprit les autres aspects du concept de Big Data. Sur la base de Gartner définition de (Souligné par - AB): « Big data est élevé le volume , haute vitesse , et / ou haute variété des actifs d'information qui nécessitent de nouvelles formes de traitement pour permettre la prise de décision améliorée, la découverte des connaissances et de l' optimisation des processus. » (généralement désigné sous le nom de " modèle 3V "). Je le mentionne, car cela oblige les spécialistes des données et les autres analystes à rechercher et à utiliser des packages R centrés sur des aspects autres que le volume du big data (grâce à la richesse d'un énorme écosystème R ).
Bien que les réponses existantes mentionnent certains packages R, liés au Big Data, pour une couverture plus complète , nous vous recommandons de vous reporter à la vue des tâches CRAN "Calcul parallèle et à haute performance avec R" ( http: //cran.r-project. org / web / views / HighPerformanceComputing.html ), en particulier les sections "Informatique parallèle: Hadoop" et "Mémoire volumineuse et données insuffisantes " .
la source
R est idéal pour le "big data"! Cependant, vous avez besoin d'un flux de travail car R est limité (avec une certaine simplification) par la quantité de mémoire vive du système d'exploitation. L’approche que j’adopte est d’interagir avec une base de données relationnelle (voir le
RSQLite
package permettant de créer et d’interagir avec une base de données SQLite), d’exécuter des requêtes de style SQL pour comprendre la structure des données, puis d’extraire des sous-ensembles particuliers de données à des fins de calcul intensif. analyses statistiques.Cependant, il n’ya qu’une approche: il existe des packages qui vous permettent d’interagir avec d’autres bases de données (Monet, par exemple) ou d’exécuter des analyses en mode R avec moins de limites de mémoire (voir par exemple
pbdR
).la source
Considérant un autre critère, je pense que dans certains cas, utiliser Python peut être bien supérieur à R pour Big Data. Je connais l’utilisation généralisée de R dans les supports pédagogiques de science des données et les bonnes bibliothèques d’analyses de données disponibles, mais cela dépend parfois de l’équipe.
D'après mon expérience, pour les personnes déjà familiarisées avec la programmation, l'utilisation de Python offre beaucoup plus de flexibilité et de productivité par rapport à un langage comme R, qui n'est pas aussi bien conçu et puissant que Python en termes de langage de programmation. Pour preuve, dans un cours d’exploration de données de mon université, le meilleur projet final a été écrit en Python, bien que les autres aient accès à la riche bibliothèque d’analyses de données de R. En d'autres termes, la productivité globale (prise en compte du matériel pédagogique, de la documentation, etc.) pour Python est parfois meilleure que celle de R, même en l'absence de bibliothèques d'analyse de données à usage spécifique pour Python. En outre, il existe de bons articles expliquant le rythme rapide de Python dans la science des données: Python Displacing R et Rich Scientific Data Structures in Python. qui pourrait bientôt combler le manque de bibliothèques disponibles pour R.
Une autre raison importante de ne pas utiliser R réside dans le fait de travailler dans le monde réel avec des problèmes de Big Data. Contrairement à des problèmes d'ordre académique, d'autres outils et techniques sont nécessaires, tels que l'analyse, le nettoyage, la visualisation, la mise au rebut de sites Web, etc. sont beaucoup plus faciles en utilisant un langage de programmation à usage général. C'est peut-être pourquoi la langue par défaut utilisée dans de nombreux cours Hadoop (y compris le cours en ligne Udacity ) est Python.
Modifier:
Récemment, la DARPA a également investi 3 millions de dollars pour financer les capacités de traitement et de visualisation des données de Python pour les tâches Big Data, ce qui est clairement un signe de l'avenir de Python dans le Big Data. ( détails )
la source
reshape2
,plyr
et maintenantdplyr
) et je ne pense pas que vous puissiez faire mieux queggplot2
/ggvis
pour la visualisationR est idéal pour de nombreuses analyses. Comme mentionné à propos, il existe de nouvelles adaptations pour les données volumineuses telles que MapR, RHadoop et les versions évolutives de RStudio.
Toutefois, si votre problème concerne les bibliothèques, gardez un œil sur Spark. Spark a été créé pour le Big Data et est BEAUCOUP plus rapide que Hadoop seul. Ses bibliothèques d’apprentissage machine, SQL, de streaming et de graphes sont en pleine croissance. Permettant ainsi une grande partie, voire la totalité, des analyses à effectuer dans le cadre (avec des API multilingues, je préfère Scala) sans avoir à mélanger les langages / outils.
la source
Comme d'autres réponses l'ont noté, R peut être utilisé avec Hadoop et d'autres plates-formes informatiques distribuées pour l'adapter au niveau "Big Data". Cependant, si vous n'êtes pas spécifiquement lié à R, mais que vous souhaitez utiliser un environnement de type "R", Incanter est un projet qui pourrait bien fonctionner, car il est natif de la JVM (basé sur Clojure) et ne n'avez pas le "désaccord d'impédance" entre lui et Hadop que R a. C'est-à-dire, depuis Incanter, vous pouvez appeler les API Hadoop / HDFS natives Java sans passer par un pont JNI ou quoi que ce soit.
la source
Je suis loin d’être un expert, mais ma compréhension du sujet me dit que R (superbe en statistique) et par exemple Python (superbe en plusieurs de ces choses où R manque) se complètent assez bien (comme le soulignaient les précédents posts) .
la source
Je pense qu’il existe une multitude d’outils pour travailler avec le Big Data dans R. sparklyr sera un excellent joueur dans ce domaine. sparklyr est une interface R pour Apache Spark et permet la connexion avec des clusters locaux et distants, fournissant ainsi un back-end dplyr. On peut également compter sur les bibliothèques d’apprentissage automatique d’Apache Spark. De plus, le traitement en parallèle est possible avec plusieurs paquets tels que rmpi et snow (contrôlé par l'utilisateur) ou doMC / foreach (basé sur le système).
la source