Ich verwende derzeit Pandas und Spark für die Datenanalyse. Ich fand, dass Dask parallelisiertes NumPy-Array und Pandas DataFrame bereitstellt.
Pandas ist einfach und intuitiv für die Datenanalyse in Python. Aufgrund des begrenzten Systemspeichers habe ich jedoch Schwierigkeiten, mit mehreren größeren Datenrahmen in Pandas umzugehen.
Einfache Antwort:
Apache Spark ist ein All-Inclusive-Framework, das verteiltes Computing, SQL-Abfragen, maschinelles Lernen und mehr kombiniert und auf der JVM ausgeführt wird und üblicherweise zusammen mit anderen Big Data-Frameworks wie Hadoop bereitgestellt wird. ... Im Allgemeinen ist Dask kleiner und leichter als Spark.
Ich erfahre unten Details von http://dask.pydata.org/en/latest/spark.html
- Dask ist leicht
- Dask wird normalerweise auf einem einzelnen Computer verwendet, läuft aber auch auf einem verteilten Cluster gut.
- Dask bietet parallele Arrays, Datenrahmen, maschinelles Lernen und benutzerdefinierte Algorithmen
- Dask hat einen Vorteil für Python-Benutzer, da es sich selbst um eine Python-Bibliothek handelt, sodass die Serialisierung und das Debuggen im Fehlerfall reibungsloser ablaufen.
- Dask gibt das Verständnis auf hoher Ebene auf, damit Benutzer komplexere parallele Algorithmen ausdrücken können.
- Dask ist leichter und lässt sich leichter in vorhandenen Code und Hardware integrieren.
- Wenn Sie ein einzelnes Projekt suchen, das alles kann und bereits Big Data-Hardware verwendet, ist Spark eine sichere Wahl
- Spark wird normalerweise in kleinen bis mittelgroßen Clustern verwendet, läuft aber auch auf einem einzelnen Computer.
Ich verstehe mehr über Dask unter dem folgenden Link https://www.continuum.io/blog/developer-blog/high-performance-hadoop-anaconda-and-dask-your-cluster
- Wenn bei der Verwendung von Pandas, NumPy oder anderen Berechnungen mit Python auf einem einzelnen Computer Speicherprobleme, Speicherbeschränkungen oder CPU-Grenzen auftreten, kann Dask Ihnen helfen, alle Kerne auf einem einzelnen Computer zu skalieren oder zu skalieren auf allen Kernen und im Speicher Ihres Clusters.
- Dask funktioniert gut auf einem einzigen Computer, um alle Kerne Ihres Laptops zu nutzen und Daten zu verarbeiten, die größer als der Speicher sind
- Skaliert elastisch und elastisch auf Clustern mit Hunderten von Knoten.
- Dask arbeitet nativ von Python aus mit Daten in verschiedenen Formaten und Speichersystemen, einschließlich des Hadoop Distributed File System (HDFS) und Amazon S3. Anaconda und Dask können mit Ihrer vorhandenen Hadoop-Unternehmensdistribution zusammenarbeiten, einschließlich Cloudera CDH und Hortonworks HDP.
http://dask.pydata.org/en/latest/dataframe-overview.html
Einschränkungen
Dask.DataFrame implementiert nicht die gesamte Pandas-Schnittstelle. Benutzer, die dies erwarten, werden enttäuscht sein. Dask.dataframe weist insbesondere die folgenden Einschränkungen auf:
- Das Festlegen eines neuen Index aus einer unsortierten Spalte ist teuer
- Bei vielen Vorgängen, wie z. B. Groupby-Apply und Join für unsortierte Spalten, muss der Index festgelegt werden, was, wie oben erwähnt, teuer ist
- Die Pandas-API ist sehr groß. Dask.dataframe versucht nicht, viele Pandas-Funktionen oder eine der exotischeren Datenstrukturen wie NDFrames zu implementieren
Vielen Dank an die Dask-Entwickler. Es scheint eine sehr vielversprechende Technologie zu sein.
Insgesamt kann ich verstehen, dass Dask einfacher zu bedienen ist als Funken. Dask ist so flexibel wie Pandas und hat mehr Möglichkeiten, parallel mit mehr CPUs zu rechnen.
Ich verstehe alle oben genannten Fakten über Dask.
Wie viel Datenmenge (in Terabyte) kann ungefähr mit Dask verarbeitet werden?