我目前正在使用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具有以下限制:
- 从未排序的列设置新索引非常昂贵
- 许多操作,例如groupby-apply和未排序列上的join都需要设置索引,如上所述,这很昂贵
- 熊猫API非常大。Dask.dataframe不会尝试实现许多熊猫功能或任何更奇特的数据结构,例如NDFrames
感谢Dask开发人员。似乎是很有前途的技术。
总的来说,我可以理解Dask比spark更易于使用。达斯(Dask)与熊猫(Pandas)一样灵活,具有更大的计算能力和更多的CPU并行度。
我了解上述有关Dask的所有事实。
因此,使用Dask可以处理大约多少数据(以TB为单位)?