어떤 상황에서 Apache Spark 대신 Dask를 사용할 수 있습니까?
현재 데이터 분석을 위해 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로 처리 할 수있는 데이터 양 (테라 바이트)은 대략 얼마입니까?
Apache Spark와 Dask 비교를 읽고 싶을 수 있습니다.
Apache Spark는 분산 컴퓨팅, SQL 쿼리, 기계 학습 등을 결합한 포괄적 인 프레임 워크로 JVM에서 실행되며 일반적으로 Hadoop과 같은 다른 빅 데이터 프레임 워크와 함께 배포됩니다. 원래 데이터 엔지니어링 및 비즈니스 분석에서 일반적으로 사용되는 대량 데이터 수집 및 쿼리에 최적화되었지만 그 이후로 확장되었습니다. Spark는 일반적으로 중소 규모의 클러스터에서 사용되지만 단일 시스템에서도 잘 실행됩니다.
Dask는 Numeric Python 에코 시스템과 결합하여 병렬 배열, 데이터 프레임, 기계 학습 및 사용자 지정 알고리즘을 제공하는 병렬 프로그래밍 라이브러리입니다. Python 및 기본 C / Fortran 스택을 기반으로합니다. Dask는 원래 숫자 컴퓨팅 및 고급 분석을 위해 병렬 처리로 다른 라이브러리를 보완하도록 설계되었지만 그 이후로 확장되었습니다. Dask는 일반적으로 단일 시스템에서 사용되지만 분산 클러스터에서도 잘 실행됩니다.
일반적으로 Dask는 Spark보다 작고 가볍습니다. 즉, 기능이 더 적고 대신 다른 라이브러리, 특히 숫자 Python 생태계의 라이브러리와 함께 사용하기위한 것입니다.
'IT Share you' 카테고리의 다른 글
HTML5 데이터베이스와 localStorage를 하위 도메인간에 공유 할 수 있습니까? (0) | 2020.12.05 |
---|---|
RSpec 문서… 어디에 숨겨져 있습니까? (0) | 2020.12.05 |
입력 끝 잭슨 파서로 인해 매핑 할 콘텐츠가 없습니다. (0) | 2020.12.05 |
변수의 전체 유형 결정 (0) | 2020.12.05 |
서비스는 터치 제스처 / 이벤트를 어떻게 수신 할 수 있습니까? (0) | 2020.12.05 |