我目前使用熊猫和星火的数据分析。我发现 Dask 提供并行 NumPy 数组和熊猫数据框架。
熊猫用 Python 进行数据分析非常简单和直观。但由于系统内存有限,我发现熊猫很难处理多个较大的数据帧。
答案很简单:
ApacheSpark 是一个结合了分布式
上运行的计算、 SQL 查询、机器学习等等
JVM,通常与其他大数据框架共同部署,如
一般来说,Dask 比 Spark 更小更轻。
我从 http://dask.pydata.org/en/latest/spark.html了解到以下细节
- 黑暗是轻重的
- Dask 通常用于单台计算机,但也可以在分布式集群上运行良好。
- Dask 提供并行数组、数据框架、机器学习和自定义算法
- 对于 Python 用户来说,Dask 有一个优势,因为它本身就是一个 Python 库,所以当出现问题时,序列化和调试会进行得更顺利。
- Dask 放弃了高层次的理解,允许用户表达更复杂的并行算法。
- Dask 重量更轻,更容易集成到现有的代码和硬件中。
- 如果你想要一个单一的项目,做一切,你已经在大数据硬件,然后 Spark 是一个安全的赌注
- Spark 通常用于中小型集群,但也可以在单个机器上运行良好。
从下面的链接我了解了更多关于 Dask 的事情
Https://www.continuum.io/blog/developer-blog/high-performance-hadoop-anaconda-and-dask-your-cluster
- 如果您在使用 Panda、 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
限制
戴斯克。DataFrame 不实现整个 Pandas 接口。期望如此的用户将会失望。值得注意的是,dask.dataframe 有以下限制:
- 从未排序的列设置新索引的开销很大
- 许多操作,如 groupby-application 和 join 对未排序列的操作,都需要设置索引,正如前面提到的,设置索引的开销很大
- 熊猫应用程序接口非常大。Dataframe 并不试图实现许多大熊猫特性或者其他更奇特的数据结构,比如 NDFrames
多亏了 Dask 的开发人员,这看起来是个很有前途的技术。
总的来说,我能理解 Dask 比火花更容易使用。Dask 和熊猫一样灵活,拥有更强大的计算能力和更多的 CPU 并行运行。
以上关于达斯克的事情我都了解。
那么,Dask 大概可以处理多少数据(以 TB 为单位) ?