Moje zrozumienie polega na obliczaniu percentyli, dane muszą być posortowane. Czy byłoby to możliwe dzięki dużej ilości danych rozłożonych na wielu serwerach, bez przenoszenia?Czy percentyle zbioru danych można obliczyć w sposób zmniejszający mapę?
Odpowiedz
Odpowiedź na pytanie to tak, jest to możliwe. Ale Map-Reduce nie jest specjalnie zaprojektowany do tego rodzaju zadań. Map-Reduce (na przykład w klastrze Hadoop) świeci na danych niestrukturalnych lub półstrukturalnych. Chociaż ma zdolność przetwarzania , nie nadaje się do tego najlepiej. (Miałem jeden projekt w firmie, w której chcieli analizować XML w klastrze Hadoop ... nie było to najfajniejsze.)
This scholarly article opisuje niektóre problemy związane z ograniczeniem mapy w przypadku danych strukturalnych i ofert alternatywne podejście z "Clydesdale". (Nigdy nie słyszałem o tym ani nie używałem tego, więc nie mogę go ani poprzeć, ani mówić do jego mocnych/słabych stron).
Szukam więcej linków, które oferują wyjaśnienia i alternatywy.
Podczas gdy MapReduce jako paradygmat nie wygląda najlepiej na problem, implementacja MR przez hadoop jest.
Implementacja redukcji map Hadoop jest oparta na sortowaniu rozproszonym - i to jest to, czego potrzebujesz. Hadoop robi sortowanie, przenosząc dane między serwerami tylko raz - nie tak źle.
Sugeruję, aby spojrzeć na wdrożenie teraort teraorton, które ilustruje dobry (i najprawdopodobniej najlepszy) sposób sortowania masywnych danych za pomocą hadoop. http://hadoop.apache.org/docs/current/api/org/apache/hadoop/examples/terasort/package-summary.html
Najpierw utworzę histogram na jednej maszynie lub na wielu maszynach. Po zliczeniu każdej możliwej wartości wiader z możliwymi wartościami można je łączyć w razie potrzeby. Wzmocnienie do korzystania z histogramu polega na tym, że ma czas wstawienia/sortowania O (1) zamiast O (log n) i wykorzystuje przestrzeń O (M), gdzie M to liczba możliwych wartości lub segmentów zamiast O (N), gdzie N jest numerem próbki.
Histogram jest sortowany w sposób naturalny, dzięki czemu można uzyskać całkowitą liczbę i znaleźć percentyle, licząc od jednego z końców.
- 1. Wstawianie rekordów zbioru danych w bazie danych
- 2. Czy można utworzyć mapę z listą kluczy?
- 3. SQL: znajdź percentyle
- 4. Jak obliczyć "mapę" w Ruby bez użycia bloków?
- 5. Python: obsługa dużego zbioru danych. Scipy czy Rpy? I jak?
- 6. Czy można "zamrozić" zestaw (lub mapę)?
- 7. Czy rozmiar zbioru danych wpływa na algorytm uczenia maszynowego?
- 8. W Dart, czy można mieć mapę konstelacji zamknięć?
- 9. Czy można obliczyć skrót MD5 bezpośrednio w języku T-SQL?
- 10. znalezienie kurtozy dla zbioru danych z doładowaniem
- 11. MatLab zmniejszający bitdepth w drukowanych obrazach?
- 12. Czy można wykonać wiązanie danych w 2 sposób meteoru
- 13. Czy można obliczyć skrót hasła używany przez usługę Active Directory?
- 14. Drukuj Brak zbioru danych Zbiór pusty zestawu danych
- 15. Czy można obliczyć prędkość, integrując dane z akcelerometru w czasie?
- 16. Grupuj podane percentyle wartości wybranej kolumny DataFrame
- 17. szybki sposób obliczyć funkcję warunkowego
- 18. Czy można zbudować mapę cieplną z danych punktowych 60 razy na sekundę?
- 19. Czy można narysować matplotlib boxplot, biorąc pod uwagę wartości percentyla zamiast oryginalnych danych wejściowych?
- 20. Czy można przechowywać javascript w bazie danych?
- 21. Problem rozwiązujący konflikt zmniejszający zmianę w mojej gramatyce
- 22. Jak obliczyć prawdopodobieństwo (zaufanie) klasyfikacji SVM dla małego zestawu danych?
- 23. Dla zbioru danych SAS, jaki jest najlepszy sposób, aby zapobiec blokowaniu dla wielu użytkowników dostępu
- 24. Eigen: Czy jest wbudowana sposób obliczyć przykładowy kowariancji
- 25. Zwycięzca zbioru loterii PHP Loterie
- 26. lista danych Get-foo atrybuty zbioru elementów jQuery
- 27. Dlaczego „Nie można znaleźć koder do rodzaju przechowywanych w zbiorze danych” podczas tworzenia zbioru danych klasy zwyczaj przypadku?
- 28. Czy Mongoid ma mapę/redukcję?
- 29. "ResourceBundle" dla całego zbioru?
- 30. Wybierz pojedynczą kolumnę ze zbioru danych za pomocą LINQ