W jakiej sytuacji mogę używać Dask zamiast Apache Spark? [Zamknięte]

81

Obecnie używam Pand i Spark do analizy danych. Znalazłem Dask zapewnia równoległą tablicę NumPy i Pandas DataFrame.

Pandas jest łatwy i intuicyjny w przeprowadzaniu analizy danych w Pythonie. Ale mam trudności z obsługą wielu większych ramek danych w Pandach z powodu ograniczonej pamięci systemowej.

Prosta odpowiedź:

Apache Spark to kompleksowa platforma łącząca przetwarzanie rozproszone, zapytania SQL, uczenie maszynowe i nie tylko, która działa na JVM i jest powszechnie wdrażana z innymi platformami Big Data, takimi jak Hadoop. ... Generalnie Dask jest mniejszy i lżejszy niż Spark.

Poniżej poznaję szczegóły z http://dask.pydata.org/en/latest/spark.html

  • Dask jest lekki
  • Dask jest zwykle używany na jednym komputerze, ale działa również dobrze w rozproszonym klastrze.
  • Dask zapewnia równoległe tablice, ramki danych, uczenie maszynowe i niestandardowe algorytmy
  • Dask ma tę zaletę dla użytkowników Pythona, ponieważ sam jest biblioteką Pythona, więc serializacja i debugowanie, gdy coś pójdzie nie tak, przebiega sprawniej.
  • Dask rezygnuje ze zrozumienia na wysokim poziomie, aby umożliwić użytkownikom wyrażanie bardziej złożonych algorytmów równoległych.
  • Dask jest lżejszy i łatwiejszy do zintegrowania z istniejącym kodem i sprzętem.
  • Jeśli chcesz mieć jeden projekt, który robi wszystko i jesteś już na sprzęcie Big Data, Spark to bezpieczny zakład
  • Spark jest zwykle używany w małych i średnich klastrach, ale działa również dobrze na jednym komputerze.

Rozumiem więcej rzeczy o Dask z poniższego linku https://www.continuum.io/blog/developer-blog/high-performance-hadoop-anaconda-and-dask-your-cluster

  • Jeśli masz problemy z pamięcią, ograniczeniami pamięci masowej lub granicami procesora na pojedynczej maszynie podczas korzystania z Pandas, NumPy lub innych obliczeń w Pythonie, Dask może pomóc w skalowaniu wszystkich rdzeni na jednym komputerze lub skalowaniu w poziomie na wszystkich rdzeniach i pamięci w klastrze.
  • Dask działa dobrze na pojedynczym komputerze, aby wykorzystać wszystkie rdzenie laptopa i przetwarzać dane większe niż pamięć
  • skaluje się sprężyście i elastycznie na klastrach z setkami węzłów.
  • Dask działa natywnie w Pythonie z danymi w różnych formatach i systemach pamięci masowej, w tym Hadoop Distributed File System (HDFS) i Amazon S3. Anaconda i Dask mogą współpracować z istniejącą dystrybucją Hadoop przedsiębiorstwa, w tym Cloudera CDH i Hortonworks HDP.

http://dask.pydata.org/en/latest/dataframe-overview.html

Ograniczenia

Dask.DataFrame nie implementuje całego interfejsu Pandas. Użytkownicy spodziewający się tego będą rozczarowani. W szczególności dask.dataframe ma następujące ograniczenia:

  1. Ustawienie nowego indeksu z nieposortowanej kolumny jest kosztowne
  2. Wiele operacji, takich jak grupowanie-stosowanie i łączenie w nieposortowanych kolumnach, wymaga ustawienia indeksu, co, jak wspomniano powyżej, jest kosztowne
  3. Interfejs API Pandas jest bardzo duży. Dask.dataframe nie próbuje zaimplementować wielu funkcji pand ani żadnej z bardziej egzotycznych struktur danych, takich jak NDFrame

Dzięki programistom Dask. Wygląda na bardzo obiecującą technologię.

Ogólnie rozumiem, że Dask jest prostszy w użyciu niż Spark. Dask jest tak samo elastyczny jak Pandy, z większą mocą obliczeniową z równolegle większą liczbą procesorów.

Rozumiem wszystkie powyższe fakty dotyczące Dask.

A więc, w przybliżeniu, ile danych (w terabajtach) można przetworzyć za pomocą Dask?

Hariprasad
źródło
To pytanie jest bardzo szerokie
MRocklin
1
Uwzględnienie samego rozmiaru danych nie wystarczy do wyboru najlepszych równoległych narzędzi / strategii. Należy wziąć pod uwagę sposób obsługi danych przez algorytm. Nie próbowałem obu, ale prawdopodobnie spróbuję dask na jednym komputerze, takim jak laptop lub komputer. I rozważy wdrożenie w celu iskier, gdy zajdzie potrzeba uruchomienia z klastrem wielowęzłowym. Ponieważ nauka i dostrajanie każdego komponentu za pomocą frameworka dostarczanego ze iskrą wygląda na bardzo skomplikowane.
ReneWang
Możesz znaleźć odpowiedź tutaj: medium.com/datadriveninvestor/ ...
jutro

Odpowiedzi:

40

możesz przeczytać porównanie Dask do Apache Spark

Apache Spark to kompleksowa platforma łącząca przetwarzanie rozproszone, zapytania SQL, uczenie maszynowe i nie tylko, która działa na JVM i jest powszechnie wdrażana z innymi platformami Big Data, takimi jak Hadoop. Został pierwotnie zoptymalizowany pod kątem zbiorczego pozyskiwania danych i wykonywania zapytań, co jest powszechne w inżynierii danych i analizie biznesowej, ale od tego czasu się rozszerzył. Spark jest zwykle używany w małych i średnich klastrach, ale działa również dobrze na jednym komputerze.

Dask to biblioteka programowania równoległego, która łączy się z ekosystemem Numeric Python w celu zapewnienia równoległych tablic, ramek danych, uczenia maszynowego i niestandardowych algorytmów. Jest oparty na Pythonie i podstawowym stosie C / Fortran. Dask został pierwotnie zaprojektowany w celu uzupełnienia innych bibliotek o równoległość, w szczególności do obliczeń numerycznych i zaawansowanych analiz, ale od tego czasu się rozszerzył. Dask jest zwykle używany na jednym komputerze, ale działa również dobrze w rozproszonym klastrze.

Generalnie Dask jest mniejszy i lżejszy niż Spark. Oznacza to, że ma mniej funkcji i zamiast tego jest przeznaczony do użytku w połączeniu z innymi bibliotekami, szczególnie tymi w numerycznym ekosystemie Pythona.

MaxU
źródło