2016-08-10 16 views
15

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:

  1. 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
  2. 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
  3. 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?

+0

Câu hỏi này rất rộng – MRocklin

+1

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

Trả lời

12

bạn có thể muốn đọc Dask comparison to Apache Spark

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 đồng triển khai với các khung dữ liệu lớn khác như Hadoop. Ban đầu, nó được tối ưu hóa cho việc nhập dữ liệu hàng loạt và truy vấn phổ biến trong kỹ thuật dữ liệu và phân tích kinh doanh nhưng đã mở rộng kể từ khi mở rộng. Spark thường được sử dụng trên các cụm nhỏ và vừa nhưng cũng chạy tốt trên một máy.

Dask là thư viện lập trình song song kết hợp với hệ sinh thái số Numeric để cung cấp mảng song song, dataframes, máy học và thuật toán tùy chỉnh. Nó dựa trên Python và nền tảng C/Fortran. Dask ban đầu được thiết kế để bổ sung cho các thư viện khác với tính song song, đặc biệt cho số tính toán và phân tích nâng cao, nhưng từ đó đã mở rộng. Dask là 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 cụm phân phối .

Thông thường Dask có trọng lượng nhỏ hơn và nhẹ hơn Spark. Điều này có nghĩa là rằng nó có ít tính năng hơn và thay vào đó được dự định sẽ được sử dụng trong số kết hợp với các thư viện khác, đặc biệt là các đối tượng trong hệ sinh thái số Python.

Các vấn đề liên quan