현재 데이터 분석을 위해 Pandas와 Spark를 사용하고 있습니다. Dask는 병렬화 된 NumPy 배열과 Pandas DataFrame을 제공합니다.
Pandas는 Python에서 데이터 분석을 수행하는 데 쉽고 직관적입니다. 그러나 제한된 시스템 메모리로 인해 Pandas에서 여러 개의 더 큰 데이터 프레임을 처리하는 데 어려움이 있습니다.
간단한 답변 :
Apache Spark는 분산 컴퓨팅, SQL 쿼리, 머신 러닝 등을 결합한 포괄적 인 프레임 워크로 JVM에서 실행되며 일반적으로 Hadoop과 같은 다른 빅 데이터 프레임 워크와 함께 배포됩니다. ... 일반적으로 Dask는 Spark보다 작고 가볍습니다.
http://dask.pydata.org/en/latest/spark.html 에서 자세한 내용을 알 수 있습니다.
- Dask는 경량입니다.
- Dask는 일반적으로 단일 시스템에서 사용되지만 분산 클러스터에서도 잘 실행됩니다.
- Dask는 병렬 배열, 데이터 프레임, 기계 학습 및 사용자 지정 알고리즘을 제공합니다.
- Dask는 그 자체가 Python 라이브러리이기 때문에 Python 사용자에게 이점이 있으므로 일이 잘못되었을 때 직렬화 및 디버깅이 더 원활하게 이루어집니다.
- Dask는 사용자가 더 복잡한 병렬 알고리즘을 표현할 수 있도록 높은 수준의 이해를 포기합니다.
- Dask는 더 가볍고 기존 코드 및 하드웨어에 쉽게 통합 할 수 있습니다.
- 모든 것을 수행하는 단일 프로젝트를 원하고 이미 빅 데이터 하드웨어를 사용하고 있다면 Spark가 안전한 선택입니다.
- Spark는 일반적으로 중소 규모의 클러스터에서 사용되지만 단일 시스템에서도 잘 실행됩니다.
아래 링크 https://www.continuum.io/blog/developer-blog/high-performance-hadoop-anaconda-and-dask-your-cluster 에서 Dask에 대해 더 많은 것을 이해합니다.
- Pandas, NumPy 또는 Python으로 기타 계산을 사용할 때 단일 컴퓨터에서 메모리 문제, 저장소 제한 또는 CPU 경계가 발생하는 경우 Dask를 사용하면 단일 컴퓨터의 모든 코어에서 확장하거나 확장 할 수 있습니다. 클러스터 전체의 모든 코어 및 메모리에서.
- Dask는 단일 컴퓨터에서 잘 작동하여 랩톱의 모든 코어를 사용하고 메모리보다 큰 데이터를 처리합니다.
- 수백 개의 노드가있는 클러스터에서 탄력적이고 탄력적으로 확장됩니다.
- Dask는 기본적으로 Python에서 HDFS (Hadoop Distributed File System) 및 Amazon S3를 비롯한 다양한 형식 및 스토리지 시스템의 데이터로 작동합니다. Anaconda 및 Dask는 Cloudera CDH 및 Hortonworks HDP를 포함한 기존 엔터프라이즈 Hadoop 배포와 함께 작동 할 수 있습니다.
http://dask.pydata.org/en/latest/dataframe-overview.html
한계
Dask.DataFrame은 전체 Pandas 인터페이스를 구현하지 않습니다. 이를 기대하는 사용자는 실망 할 것입니다. 특히 dask.dataframe에는 다음과 같은 제한이 있습니다.
- 정렬되지 않은 열에서 새 인덱스를 설정하는 것은 비용이 많이 듭니다.
- groupby-apply 및 정렬되지 않은 열에 대한 조인과 같은 많은 작업에는 위에서 언급했듯이 비용이 많이 드는 인덱스 설정이 필요합니다.
- Pandas API는 매우 큽니다. Dask.dataframe은 많은 pandas 기능이나 NDFrames와 같은 더 이국적인 데이터 구조를 구현하려고 시도하지 않습니다.
Dask 개발자에게 감사합니다. 매우 유망한 기술처럼 보입니다.
전반적으로 Dask가 스파크보다 사용하기가 더 쉽다는 것을 이해할 수 있습니다. Dask는 더 많은 CPU의 병렬성으로 계산할 수있는 더 많은 파워를 가진 Pandas만큼 유연합니다.
나는 Dask에 대한 위의 모든 사실을 이해합니다.
그렇다면 Dask로 처리 할 수있는 데이터 양 (테라 바이트)은 대략 얼마입니까?