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:
- Ustawienie nowego indeksu z nieposortowanej kolumny jest kosztowne
- Wiele operacji, takich jak grupowanie-stosowanie i łączenie w nieposortowanych kolumnach, wymaga ustawienia indeksu, co, jak wspomniano powyżej, jest kosztowne
- 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?