在什么情况下我可以使用Dask而不是Apache Spark?

Har*_*sad 63 python bigdata pandas 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通常用于中小型集群,但也可在单台机器上运行良好.

我从以下链接了解有关Dask的更多信息 https://www.continuum.io/blog/developer-blog/high-performance-hadoop-anaconda-and-dask-your-cluster

  • 如果您在使用Pandas,NumPy或其他使用Python的计算时遇到内存问题,存储限制或单个计算机上的CPU边界,Dask可以帮助您扩展单个计算机上的所有核心,或者向外扩展在群集中的所有核心和内存上.
  • Dask在一台机器上运行良好,可以利用笔记本电脑上的所有内核并处理大于内存的数据
  • 在具有数百个节点的群集上弹性地弹性扩展.
  • Dask使用Python本地工作,具有不同格式和存储系统的数据,包括Hadoop分布式文件系统(HDFS)和Amazon S3.Anaconda和Dask可以与您现有的企业Hadoop发行版配合使用,包括Cloudera CDH和Hortonworks HDP.

http://dask.pydata.org/en/latest/dataframe-overview.html

限制

Dask.DataFrame不实现整个Pandas接口.期望这样的用户会感到失望.但是,dask.dataframe有以下限制:

  1. 从未排序的列设置新索引非常昂贵
  2. 许多操作,例如groupby-apply和join on unsorted columns,需要设置索引,如上所述,索引很昂贵
  3. Pandas API非常庞大.Dask.dataframe不会尝试实现许多pandas功能或任何更奇特的数据结构,如NDFrame

感谢Dask开发人员.这似乎是非常有前途的技术.

总的来说,我可以理解Dask比spark更容易使用.Dask与Pandas一样灵活,具有更大的计算能力和更多的CPU.

我理解关于Dask的所有上述事实.

那么,使用Dask大致可以处理多少数据量(以TB为单位)?

Max*_*axU 28

您可能想要阅读与Apache Spark的Dask比较

Apache Spark是一个包含分布式计算,SQL查询,机器学习等在JVM上运行的全包框架,通常与Hadoop等其他大数据框架共同部署.它最初针对数据工程和业务分析中常见的批量数据摄取和查询进行了优化,但后来扩展了.Spark通常用于中小型集群,但也可在单台机器上运行良好.

Dask是一个并行编程库,它与Numeric Python生态系统相结合,提供并行数组,数据帧,机器学习和自定义算法.它基于Python和基础C/Fortran堆栈.Dask最初设计用于补充具有并行性的其他库,特别是用于数值计算和高级分析,但后来扩展了.Dask通常在单个计算机上使用,但也可以在分布式群集上运行良好.

通常,Dask比Spark更小,重量更轻.这意味着它具有更少的功能,而是旨在与其他库结合使用,尤其是数字Python生态系统中的库.