Frage

R hat viele Bibliotheken, die auf die Datenanalyse abzielen (z. B. Jags, Fehler, Erhöhungen usw.), und wird in beliebten Lehrbüchern wie: J.Krusche, die Bayesian -Datenanalyse durchführen; B.Lantz, "Maschinelles Lernen mit R".

Ich habe eine Richtlinie von 5 TB gesehen, damit ein Datensatz als Big Data betrachtet werden soll.

Meine Frage ist: Ist R für die Datenmenge geeignet, die normalerweise bei Big -Data -Problemen zu sehen ist? Gibt es Strategien, die bei der Verwendung von R mit dieser Datensatzgröße angewendet werden müssen?

War es hilfreich?

Lösung

Eigentlich kommt das vorbei. In dem Buch R auf einen Punkt schafft es sogar einen Abschnitt über die Verwendung von R mit Hadoop für die Big -Data -Verarbeitung. Es gibt einige Arbeiten, die erledigt werden müssen, da R alles im Speicher funktioniert, sodass Sie im Grunde genommen auf die Menge an RAM beschränkt sind, die Sie Ihnen zur Verfügung haben.

Ein ausgereiftes Projekt für R und Hadoop ist Rhadoop

Rhadoop wurde in mehrere Unterprojekte unterteilt, RhDFs, Rhbase, RMR2, PlyRMR und QuickCheck (Wiki).

Andere Tipps

Das Hauptproblem bei der Verwendung von R für große Datensätze ist die RAM -Einschränkung. Der Grund für die Aufbewahrung aller Daten im RAM ist, dass es viel schnellere Zugriff und Datenmanipulationen bietet als das Speichern von HDDs. Wenn Sie bereit sind, eine Leistung zu erzielen, dann ist es ziemlich praktisch, mit der Arbeit zu arbeiten große Datensätze in r.

  • RODBC -Paket: Ermöglicht die Verbindung zu externen DB von R, um Daten abzurufen und zu verarbeiten. Daher sind die Daten manipuliert ist auf Ihren Widder beschränkt. Der Gesamtdatensatz kann viel größer werden.
  • Das FF-Paket ermöglicht die Verwendung von größeren RAM-Datensätzen mithilfe von Speicher-Kartentages.
  • Biglm: Es erstellt verallgemeinerte lineare Modelle für Big Data. Es lädt Daten in Stücken in Speicher.
  • BigMemory: Ein R-Paket, das leistungsstarke und speichereffiziente parallele Analysen und Data-Mining massiver Datensätze ermöglicht. Es ermöglicht das Speichern großer Objekte (Matrizen usw.) im Speicher (auf dem RAM) unter Verwendung externer Zeigerobjekte, um sich darauf zu beziehen.

Einige gute Antworten hier. Ich möchte der Diskussion beitreten, indem ich die folgenden drei hinzufügen Anmerkungen:

  1. Die Frage der Frage auf die Datenvolumen während sich bezieht sich auf Große Daten ist sicherlich verständlich und gültig, besonders wenn man die berücksichtigt Problem des Datenvolumenswachstums übertreffen exponentielles Wachstum der technologischen Kapazitäten pro Moores Gesetz (http://en.wikipedia.org/wiki/moore%27s_law).

  2. Trotzdem ist es wichtig, sich an andere Aspekte des Big Data -Konzepts zu erinnern. Bezogen auf Gärtner'S Definition (Hervorhebung meiner - AB): "Große Daten ist hoch Volumen, hoch Geschwindigkeit, und/oder hoch Vielfalt Informationsvermögen, die neue Verarbeitungsformen erfordern, um eine verbesserte Entscheidungsfindung, Erkenntnisse und Prozessoptimierung zu ermöglichen. "3VS -Modell"). Ich erwähne dies, weil es Datenwissenschaftler und andere Analysten dazu zwingt, nach R -Paketen zu suchen und zu verwenden, auf die sich konzentrieren anders als Volumen Aspekte von Big Data (ermöglicht durch die Reichtum von enorm R -Ökosystem).

  3. Während vorhandene Antworten einige R -Pakete erwähnen, die sich auf Big Data beziehen, für ein mehr umfassende Berichterstattung, Ich würde empfehlen, sich darauf zu beziehen Kran -Aufgabenansicht "Hochleistungs- und paralleles Computing mit R" (http://cran.r-project.org/web/views/highperformancecomputing.html) insbesondere Abschnitte "Parallel Computing: Hadoop" und "Großer Speicher und außerememorische Daten".

R ist großartig für "Big Data"! Sie benötigen jedoch einen Workflow, da R durch die Menge an RAM im Betriebssystem begrenzt ist (mit einiger Vereinfachung). Der Ansatz, den ich verfolge, besteht darin, mit einer relationalen Datenbank zu interagieren (siehe die RSQLite Paket zum Erstellen und Interagieren mit einer SQLite-Datenbank) führen Sie SQL-Stilabfragen aus, um die Struktur der Daten zu verstehen, und extrahieren Sie dann bestimmte Teilmengen der Daten für rechenintensive statistische Analysen.

Dieser nur ein Ansatz: Es gibt Pakete, mit denen Sie mit anderen Datenbanken (z. B. Monet) interagieren oder Analysen in R mit weniger Speicherbeschränkungen ausführen können (z. B. siehe pbdR).

In Anbetracht eines weiteren Kriteriens denke ich, dass in einigen Fällen die Verwendung von Python für Big Data gegenüber R viel überlegen ist. Ich kenne die weit verbreitete Verwendung von R in Data Science-Bildungsmaterialien und die dafür verfügbaren guten Datenanalyse-Bibliotheken, aber manchmal hängt es nur vom Team ab.

Nach meiner Erfahrung bietet die Verwendung von Python für Menschen, die bereits mit der Programmierung vertraut sind, viel mehr Flexibilität und Produktivitätssteigerungen im Vergleich zu einer Sprache wie R, die im Vergleich zu Python in Bezug auf eine Programmiersprache nicht so gut gestaltet und leistungsfähig ist. Als Beweis wurde in einem Data Mining -Kurs in meiner Universität das beste endgültige Projekt in Python geschrieben, obwohl die anderen Zugriff auf die Rich Data Analysis Library von R haben. Das heißt, manchmal ist die Gesamtproduktivität (in Betrachtlichkeit von Lernmaterialien, Dokumentation usw.) für Python möglicherweise besser als R, selbst wenn es an Bibliotheken für Spezialzweckdatenanalysen für Python fehlt. Es gibt auch einige gute Artikel, die das schnelle Tempo von Python in der Data Science erklären: Python -Verdrängung r und Reiche wissenschaftliche Datenstrukturen in Python Das könnte bald die Lücke der verfügbaren Bibliotheken für R. füllen

Ein weiterer wichtiger Grund für die Nutzung von R ist bei der Arbeit mit Big -Data -Problemen in der realen Welt, die im Gegensatz zu den nur akademischen Problemen nur andere Tools und Techniken benötigen, wie Datenspitzen, Reinigung, Visualisierung, Web -Scraping und viele andere, die, die, die, die sind viel einfacher mit einer allgemeinen Programmiersprache. Dies mag der Grund sein, warum die in vielen Hadoop -Kursen verwendete Standardsprache (einschließlich der Udacity Online Kurs) ist Python.

Bearbeiten:

Kürzlich hat DARPA auch 3 Millionen US -Dollar investiert, um Pythons Datenverarbeitungs- und Visualisierungsfunktionen für Big Data Jobs zu finanzieren, was eindeutig ein Zeichen für die Zukunft von Python in Big Data ist. (Einzelheiten)

R ist ideal für eine Menge Analysen. Wie bereits erwähnt, gibt es neuere Anpassungen für Big Data wie MapR, Rhadoop und skalierbare Versionen von RSTUDIO.

Wenn Sie jedoch Bibliotheken sind, behalten Sie den Funken im Auge. Spark wurde für Big Data erstellt und ist viel schneller als Hadoop allein. Es verfügt über wachsende maschinelle Lernen, SQL-, Streaming- und Graph -Bibliotheken. Daher ermöglicht viel, wenn nicht die gesamte Analyse im Rahmen (mit mehreren Sprach -APIs, ich bevorzuge Scala), ohne zwischen Sprachen/Tools mischen zu müssen.

Wie andere Antworten festgestellt haben, kann R zusammen mit Hadoop und anderen verteilten Computing -Plattformen verwendet werden, um es auf das "Big Data" -Pegel zu skalieren. Wenn Sie jedoch nicht speziell mit R verheiratet sind, sondern bereit sind, eine "R-ähnliche" Umgebung zu verwenden, sind Inkanter ist ein Projekt, das für Sie gut funktioniert, da es im JVM (basierend auf Clojure) heimisch ist und nicht über die "Impedanz -Missverhältnis" zwischen sich und Hadop verfügt, die R hat. Das heißt, von Incanter können Sie Java Native Hadoop / HDFS -APIs aufrufen, ohne eine JNI -Brücke oder irgendetwas durchlaufen zu müssen.

Ich bin weit entfernt von einem Experten, aber mein Verständnis des Faches sagt mir, dass R (hervorragend in Statistiken) und z. .

Ich denke, dass es tatsächlich eine Pletora von Tools für die Arbeit mit Big Data in R. Sparklyr gibt, wird in diesem Bereich ein großartiger Spieler sein. Sparkryr ist eine R-Schnittstelle zu Apache Spark und ermöglicht die Verbindung mit lokalen und entfernten Clustern, die ein Back-End-DPLE-Back-End liefert. Man kann sich auch auf Apache Sparks maschinelles Lernbibliotheken verlassen. Darüber hinaus ist eine parallele Verarbeitung mit mehreren Paketen wie RMPI und Snow (benutzergesteuert) oder DOMC/foreach (systembasiert) möglich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top