Mein Verständnis ist Perzentilen zu berechnen, müssen die Daten sortiert werden. Wäre dies mit einer großen Menge an Daten möglich, die auf mehrere Server verteilt sind, ohne sie zu verschieben?Können Perzentile eines Datensatzes auf eine Map-Reduced-Art berechnet werden?
Antwort
Die Antwort auf Ihre Frage ist ja, es ist möglich. Aber Map-Reduce ist nicht wirklich für diese Aufgabe geeignet. Map-Reduce (wie es beispielsweise in einem Hadoop-Cluster verwendet wird) scheint auf unstrukturierte oder halbstrukturierte Daten. Während es die Fähigkeit hat, andere Arten zu verarbeiten, ist es nicht für es am besten geeignet. (Ich hatte ein Projekt in einem Unternehmen, wo XML in einem Hadoop-Cluster analysiert werden sollte ... es war nicht die meiste Spaß.)
beschreibt einige der Probleme mit Map-Reduce auf strukturierte Daten und Angebote ein alternativer Ansatz mit "Clydesdale". (Ich habe noch nie davon gehört oder dies verwendet, daher kann ich es weder befürworten noch seine Stärken/Schwächen ansprechen.)
Ich bin auf der Suche nach mehr Links, die Erklärungen und Alternativen bieten.
Während MapReduce als Paradigma für das Problem nicht geeignet erscheint, ist die Implementierung von MR - von hadoop.
Die Implementierung von Hadoop Map reduzieren basiert auf verteilte Sortierung - und es ist, was Sie brauchen. Hadoop macht eine Sortierung, indem Daten zwischen Servern nur einmal verschoben werden - nicht so schlimm.
Ich würde vorschlagen, auf Hadoop-Implementierung zu sehen, die die gute (und wahrscheinlich die beste) Möglichkeit, massive Daten mit Hadoop zu sortieren, veranschaulichen. http://hadoop.apache.org/docs/current/api/org/apache/hadoop/examples/terasort/package-summary.html
Ich würde zuerst ein Histogramm erstellen, entweder auf einer Maschine oder mehreren Maschinen. Sobald Sie für jeden möglichen Wert von Buckets mit möglichen Werten eine Zählung haben, können Sie diese bei Bedarf kombinieren. Der Gewinn für die Verwendung eines Histogramms ist, dass es eine O (1) -Einfügungs-/Sortierzeit anstelle von O (log n) hat und O (M) -Raum verwendet, wobei M die Anzahl der möglichen Werte oder Buckets anstelle von O (N) ist ist die Anzahl der Proben.
Ein Histogramm wird natürlich sortiert, so dass Sie eine Gesamtanzahl erhalten und die Perzentile durch Zählen von jedem Ende finden können.
- 1. Wie berechnet man Perzentile aus der Häufigkeitstabelle?
- 2. Löschen eines Datensatzes (mit GridView)
- 3. Löschen eines verknüpften Datensatzes über eine remote_form
- 4. Kopieren eines Datensatzes in VBA
- 5. Altern eines Datensatzes
- 6. Abrufen nur eines Datensatzes basierend auf Name
- 7. Wie verweist man auf eine Klasse innerhalb eines konstanten Datensatzes?
- 8. Durchsuchen eines HDF5-Datensatzes
- 9. Etikettieren eines gestapelten Datensatzes
- 10. Berechne Perzentile basierend auf Daten in SQL
- 11. Erstellen eines Datensatzes
- 12. zum Abrufen eines bestimmten Datensatzes
- 13. Beibehalten eines Datensatzes von SQL-Einfügungen
- 14. Verständnis Shannon Entropie eines Datensatzes
- 15. Codierung eines Datensatzes mit Protobuff
- 16. Montage eines Datensatzes von AWS
- 17. Größe eines einzelnen Datensatzes? SQL
- 18. Wie erhalten Sie Perzentile auf groupby Spalte in Python?
- 19. Volltextindizierung nach dem Ändern eines Datensatzes
- 20. Systematische Anwendung einer Funktion auf alle Felder eines Haskell Datensatzes
- 21. Recoding Perzentile: Funktion anstelle von for-Schleife
- 22. Ausgabe eines Datensatzes als PDF-Datei
- 23. Einfügen nur eines Datensatzes mit CrudRepository
- 24. Zusammenführen eines Datensatzes basierend auf ID und Datum
- 25. Matlab zeichne die Summe eines Datensatzes
- 26. Zeige ein Popup beim Speichern eines Datensatzes auf Odoo/Openerp
- 27. Eloquent - voreingenommen zufällige Auswahl eines Datensatzes
- 28. Mühe die erste Spalte eines Datensatzes in R Zugriff auf
- 29. Hinzufügen eines Datensatzes zu einer Junction-Tabelle beim Aktualisieren eines Datensatzes
- 30. Duplizieren eines Datensatzes in Rails 3