Tôi hiện đang sử dụng Pandas và Spark để phân tích dữ liệu. Tôi thấy Dask cung cấp mảng NumPy và Pandas DataFrame song song.
Pandas rất dễ dàng và trực quan để thực hiện phân tích dữ liệu bằng Python. Nhưng tôi gặp khó khăn trong việc xử lý nhiều khung dữ liệu lớn hơn trong Pandas do bộ nhớ hệ thống hạn chế.
Câu trả lời đơn giản:
Apache Spark là một khuôn khổ bao gồm tất cả kết hợp điện toán phân tán, truy vấn SQL, học máy, v.v. chạy trên JVM và thường được đồng triển khai với các khuôn khổ Dữ liệu lớn khác như Hadoop. ... Nói chung Dask nhỏ hơn và trọng lượng nhẹ hơn Spark.
Tôi biết chi tiết bên dưới từ http://dask.pydata.org/en/latest/spark.html
- Dask có trọng lượng nhẹ
- Dask thường được sử dụng trên một máy duy nhất, nhưng cũng chạy tốt trên một cụm phân tán.
- Dask cung cấp các mảng song song, khung dữ liệu, máy học và thuật toán tùy chỉnh
- Dask có lợi thế hơn đối với người dùng Python vì bản thân nó là một thư viện Python nên việc tuần tự hóa và gỡ lỗi khi có sự cố diễn ra suôn sẻ hơn.
- Dask đưa ra sự hiểu biết cấp cao để cho phép người dùng diễn đạt các thuật toán song song phức tạp hơn.
- Dask có trọng lượng nhẹ hơn và dễ dàng tích hợp vào mã và phần cứng hiện có hơn.
- Nếu bạn muốn một dự án duy nhất làm được mọi thứ và bạn đã sử dụng phần cứng Dữ liệu lớn thì Spark là một lựa chọn an toàn
- Spark thường được sử dụng trên cụm có kích thước vừa và nhỏ nhưng cũng chạy tốt trên một máy duy nhất.
Tôi hiểu thêm nhiều điều về Dask từ liên kết dưới đây https://www.continuum.io/blog/developer-blog/high-performance-hadoop-anaconda-and-dask-your-cluster
- Nếu bạn đang gặp vấn đề về bộ nhớ, giới hạn lưu trữ hoặc ranh giới CPU trên một máy khi sử dụng Pandas, NumPy hoặc các tính toán khác với Python, Dask có thể giúp bạn mở rộng quy mô trên tất cả các lõi trên một máy hoặc mở rộng quy mô trên tất cả các lõi và bộ nhớ trong cụm của bạn.
- Dask hoạt động tốt trên một máy duy nhất để tận dụng tất cả các lõi trên máy tính xách tay của bạn và xử lý dữ liệu lớn hơn bộ nhớ
- mở rộng quy mô một cách bền bỉ và đàn hồi trên các cụm với hàng trăm nút.
- Dask hoạt động nguyên bản từ Python với dữ liệu ở các định dạng và hệ thống lưu trữ khác nhau, bao gồm Hệ thống tệp phân tán Hadoop (HDFS) và Amazon S3. Anaconda và Dask có thể hoạt động với bản phân phối Hadoop doanh nghiệp hiện có của bạn, bao gồm Cloudera CDH và Hortonworks HDP.
http://dask.pydata.org/en/latest/dataframe-overview.html
Hạn chế
Dask.DataFrame không triển khai toàn bộ giao diện Pandas. Người dùng mong đợi điều này sẽ thất vọng. Đáng chú ý, dask.dataframe có những hạn chế sau:
- Đặt một chỉ mục mới từ một cột chưa được sắp xếp rất tốn kém
- Nhiều hoạt động, như áp dụng theo nhóm và nối trên các cột không được sắp xếp yêu cầu thiết lập chỉ mục, như đã đề cập ở trên, rất tốn kém
- API Pandas rất lớn. Dask.dataframe không cố gắng triển khai nhiều tính năng của gấu trúc hoặc bất kỳ cấu trúc dữ liệu kỳ lạ nào như NDFrames
Cảm ơn các nhà phát triển Dask. Nó có vẻ như là một công nghệ rất hứa hẹn.
Nhìn chung, tôi có thể hiểu Dask đơn giản hơn để sử dụng so với spark. Dask linh hoạt như Gấu trúc với nhiều sức mạnh hơn để tính toán song song với nhiều cpu hơn.
Tôi hiểu tất cả những điều trên về Dask.
Vì vậy, khoảng bao nhiêu lượng dữ liệu (tính bằng terabyte) có thể được xử lý với Dask?