Tôi hiện đang sử dụng Pandas và Spark để phân tích dữ liệu. Tôi tìm thấy Dask cung cấp song song mảng NumPy và Pandas DataFrame.Ở tình huống nào tôi có thể sử dụng Dask thay vì Apache Spark?
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 thấy khó khăn trong việc xử lý nhiều dataframes lớn hơn trong Pandas do bộ nhớ hệ thống hạn chế.
đơn giản trả lời:
Apache Spark là một khuôn khổ bao gồm tất cả kết hợp phân phối máy tính, truy vấn SQL, học máy, và nhiều hơn nữa mà chạy trên JVM và thường được đồng triển khai với dữ liệu lớn khác các khung như Hadoop. ... Nói chung Dask là trọng lượng nhỏ hơn và nhẹ hơn Spark.
tôi nhận biết dưới đây chi tiết từ http://dask.pydata.org/en/latest/spark.html
- Dask là ánh sáng trọng
- Dask thường được sử dụng trên một máy tính duy nhất, mà còn chạy tốt trên một cụm phân tán.
- Dask để cung cấp mảng song song, dataframes, học máy và thuật toán tùy chỉnh
- Dask có lợi thế cho người dùng Python vì nó là thư viện Python, do đó, tuần tự hóa và gỡ lỗi khi mọi thứ xảy ra diễn ra suôn sẻ hơn.
- Dask từ bỏ hiểu biết cấp cao để cho phép người dùng thể hiện các thuật toán song song phức tạp hơn.
- Thùng là trọng lượng nhẹ hơn và dễ tích hợp hơn vào mã và phần cứng hiện có.
- Nếu bạn muốn một dự án duy nhất thực hiện mọi thứ và bạn đã có trên phần cứng Big Data thì Spark là một cược an toàn
- Spark thường được sử dụng trên cụm vừa và nhỏ nhưng cũng chạy tốt trên một máy.
Tôi hiểu 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 chạy vào các vấn đề bộ nhớ, hạn chế lưu trữ, hoặc ranh giới CPU trên một máy duy nhất 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 trên tất cả các lõi trên một máy tính, hoặc mở rộng trên tất cả các lõi và bộ nhớ trên cụm của bạn.
- Dask hoạt động tốt trên một máy để 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ớ
- tăng cường đàn hồi và đàn hồi trên các cụm với hàng trăm nút.
- Dask hoạt động nguyên gốc 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ể làm việc với phân phối Hadoop doanh nghiệp hiện tại 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 thực hiện toàn bộ giao diện Pandas. Người dùng mong đợi này sẽ disappointed.Notably, dask.dataframe có những hạn chế sau:
- Thiết lập một chỉ số mới từ một cột không được phân loại là tốn kém
- Nhiều hoạt động, như groupby áp dụng và tham gia vào các cột không được phân loại yêu cầu thiết lập chỉ mục, như đã đề cập ở trên, là đắt tiền
- API Pandas rất lớn. Dask.dataframe không cố gắng triển khai nhiều tính năng gấu trúc hoặc bất kỳ cấu trúc dữ liệu kỳ lạ nào khác như NDFrames
Nhờ các nhà phát triển Dask. Nó có vẻ như công nghệ rất hứa hẹn.
Nhìn chung, tôi có thể hiểu Dask dễ sử dụng hơn tia lửa. Dask là linh hoạt như Pandas với nhiều quyền lực hơn để tính toán với CPU nhiều hơn song song.
Tôi hiểu tất cả các sự kiện trên về Dask.
Vì vậy, khoảng bao nhiêu lượng dữ liệu (bằng terabyte) có thể được xử lý bằng Dask?
Câu hỏi này rất rộng – MRocklin
Chỉ xem xét kích thước dữ liệu không đủ để chọn các công cụ/chiến lược song song tốt nhất. Thuật toán xử lý dữ liệu cần được tính đến như thế nào.Tôi đã không cố gắng cả hai nhưng có lẽ sẽ cố gắng dask trên máy tính đơn lẻ như máy tính xách tay hoặc máy tính. Và sẽ xem xét triển khai để kích hoạt khi có nhu cầu chạy với cụm nhiều nút. Vì nó trông rất phức tạp để tìm hiểu và điều chỉnh từng thành phần với khuôn khổ sắp tới với tia lửa. – ReneWang