在什么情况下可以使用Dask代替Apache Spark?[关闭]


81

我目前正在使用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对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原生处理具有不同格式和存储系统的数据,包括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都需要设置索引,如上所述,这很昂贵
  3. 熊猫API非常大。Dask.dataframe不会尝试实现许多熊猫功能或任何更奇特的数据结构,例如NDFrames

感谢Dask开发人员。似乎是很有前途的技术。

总的来说,我可以理解Dask比spark更易于使用。达斯(Dask)与熊猫(Pandas)一样灵活,具有更大的计算能力和更多的CPU并行度。

我了解上述有关Dask的所有事实。

因此,使用Dask可以处理大约多少数据(以TB为单位)?


这个问题非常广泛
MRocklin '16

1
仅考虑数据大小不足以选择最佳的并行工具/策略。需要考虑算法如何处理数据。我还没有尝试过,但是可能会尝试在单台机器(例如笔记本电脑或PC)上使用dask。并且将考虑在需要与多节点群集一起运行时进行部署以激发火花。由于使用spark附带的框架来学习和调整每个组件看起来非常复杂。
ReneWang

您可以在此处找到回复:medium.com/datadriveninvestor/…–
tom

Answers:


40

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

Apache Spark是一个包罗万象的框架,结合了分布式计算,SQL查询,机器学习以及在JVM上运行的更多功能,并且通常与Hadoop等其他大数据框架共同部署。它最初针对数据工程和业务分析中常见的批量数据提取和查询进行了优化,但此后得到了扩展。Spark通常用于中小型集群,但也可以在一台机器上很好地运行。

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

通常,Dask比Spark轻巧。这意味着它具有较少的功能,而是打算与其他库(尤其是数字Python生态系统中的库)结合使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.