问题标签 [dask]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dask - dask.dataframe.from_bcolz() 立即开始处理
我想知道为什么 dd.from_bcolz() 在调用时立即开始进行一些处理(当 N 列上升并且有字符串类型列时会增长很多)。
并且 dd.read_hdf() 在调用时不会做太多处理,但只有在使用 dask.dataframe 时才会进行 - 然后 read_hdf() 逐块读取和处理 HDF5 ...
我喜欢 read_hdf 现在的工作方式,唯一的问题是 hdf5 表不能超过 ~1200 列,并且数据框不支持数组列。而且 hdf5 格式毕竟不是基于列的......
当 N (nrows) 长大时,情况会变得更糟。
dask - python包分发,轻松设置获取web UI地址
我目前正在使用分发的python包,有谁知道在使用Python API设置时如何获取Web UI的地址?
执行者 = 执行者()
或者我总是必须使用命令行进行设置
桌面调度程序
获取Web UI 的地址?
python - 如何复制 dask 数据框?
给定一个熊猫df
,可以通过以下方式在做任何事情之前复制它:
如何使用 dask 数据框对象执行此操作?
python - How do you transpose a dask dataframe (convert columns to rows) to approach tidy data principles
TLDR: I created a dask dataframe from a dask bag. The dask dataframe treats every observation (event) as a column. So, instead of having rows of data for each event, I have a column for each event. The goal is to transpose the columns to rows in the same way that pandas can transpose a dataframe using df.T.
Details:
I have sample twitter data from my timeline here. To get to my starting point, here is the code to read a json from disk into a dask.bag
and then convert that into a dask.dataframe
The Problem All my individual events (i.e. tweets) are recorded as columns vice rows. In keeping with tidy
principles, I would like to have rows for each event. pandas
has a transpose method for dataframes and dask.array has a transpose method for arrays. My goal is to do the same transpose operation, but on a dask dataframe. How would I do that?
- Convert rows to columns
Edit for solution
This code resolves the original transpose problem, cleans Twitter json files by defining the columns you want to keep and dropping the rest, and creates a new column by applying a function to a Series. Then, we write a MUCH smaller, cleaned file to disk.
python - Dask worker 持久变量
dask 有没有办法让变量可以从一个任务检索到另一个任务。我的意思是一个变量,我可以锁定工作人员,然后在我执行另一个任务时在同一个工作人员中检索。
python - 在什么情况下我可以使用 Dask 而不是 Apache Spark?
我目前正在使用 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 具有以下限制:
- 从未排序的列设置新索引是昂贵的
- 许多操作,如 groupby-apply 和 join 未排序的列需要设置索引,如上所述,这是昂贵的
- Pandas API 非常庞大。Dask.dataframe 不会尝试实现许多 pandas 功能或任何更奇特的数据结构,如 NDFrames
感谢 Dask 开发人员。这似乎是非常有前途的技术。
总的来说,我可以理解 Dask 比 spark 更易于使用。Dask 与 Pandas 一样灵活,具有更多的并行计算能力。
我了解有关 Dask 的所有上述事实。
那么,Dask 大概可以处理多少数据(以 TB 为单位)?
python - Dask 中的基本 groupby 操作
我正在尝试使用 Dask 来处理一个大文件(50 GB)。通常,我会将它加载到内存中并使用 Pandas。我想对两列“A”和“B”进行分组,每当“C”列以一个值开头时,我想在该列中为该特定组重复该值。
在熊猫中,我会做以下事情:
Dask 中的等价物是什么?另外,对于如何在 Dask 中而不是在 Pandas 中构造问题,我有点迷茫,
谢谢你,
到目前为止我的进展:
第一组指数:
然后分组:
python - 如何在不使用所有工作人员的情况下限制大量任务
想象一下,我有一个包含 10 个工人和 40 个核心的 dask 网格。这是一个共享网格,所以我不想让我的工作完全饱和。我有 1000 个任务要做,我想一次提交(并积极运行)最多 20 个任务。
具体来说,
如果我设置一个队列系统
这会起作用,但是,这只会将我的所有任务转储到网格中,使其饱和。理想情况下,我可以:
似乎这里文档中的示例允许我使用maxsize
队列。但从用户的角度来看,我仍然需要处理背压。理想情况下 dask
会自动处理这个问题。