问题标签 [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.

0 投票
1 回答
70 浏览

dask - dask.dataframe.from_bcolz() 立即开始处理

我想知道为什么 dd.from_bcolz() 在调用时立即开始进行一些处理(当 N 列上升并且有字符串类型列时会增长很多)。

并且 dd.read_hdf() 在调用时不会做太多处理,但只有在使用 dask.dataframe 时才会进行 - 然后 read_hdf() 逐块读取和处理 HDF5 ...

我喜欢 read_hdf 现在的工作方式,唯一的问题是 hdf5 表不能超过 ~1200 列,并且数据框不支持数组列。而且 hdf5 格式毕竟不是基于列的......

当 N (nrows) 长大时,情况会变得更糟。

0 投票
1 回答
246 浏览

dask - python包分发,轻松设置获取web UI地址

我目前正在使用分发的python包,有谁知道在使用Python API设置时如何获取Web UI的地址?

执行者 = 执行者()

或者我总是必须使用命令行进行设置

桌面调度程序

获取Web UI 的地址?

0 投票
4 回答
2028 浏览

python - 如何复制 dask 数据框?

给定一个熊猫df,可以通过以下方式在做任何事情之前复制它:

如何使用 dask 数据框对象执行此操作?

0 投票
1 回答
2915 浏览

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?

  1. 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.

0 投票
1 回答
335 浏览

python - Dask worker 持久变量

dask 有没有办法让变量可以从一个任务检索到另一个任务。我的意思是一个变量,我可以锁定工作人员,然后在我执行另一个任务时在同一个工作人员中检索。

0 投票
1 回答
1460 浏览

python - Dask 错误:值的长度与索引的长度不匹配

我以这种方式使用dask读取了 csv 文件:

然后我想对每行应用简单的逻辑,这在熊猫中工作得很好:

不幸的是,最后一行代码生成以下错误:值的长度与索引的长度不匹配

我究竟做错了什么?

0 投票
1 回答
1241 浏览

python - 如何在 Pandas/Dask 中按具有可变 bin 的列离散大数据帧

我可以使用以下代码按列离散化 Pandas 数据帧:

我想使用作为参数对每一列进行离散化:loc(列的中值)和 scale(列的中值绝对偏差)。

对于小型数据帧,所需的时间是可以接受的(因为它是单线程解决方案)。

但是,对于更大的数据帧,我想利用更多的线程(或进程)来加速计算。

我不是Dask的专家的专家,它应该为这个问题提供解决方案。

但是,在我的情况下,代码的离散化应该是可行的:

loc但这里的问题是scale依赖于列值,因此应该在应用之前或期间为每一列计算它们。

怎么做到呢?

0 投票
1 回答
38267 浏览

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 具有以下限制:

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

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

总的来说,我可以理解 Dask 比 spark 更易于使用。Dask 与 Pandas 一样灵活,具有更多的并行计算能力。

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

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

0 投票
1 回答
1226 浏览

python - Dask 中的基本 groupby 操作

我正在尝试使用 Dask 来处理一个大文件(50 GB)。通常,我会将它加载到内存中并使用 Pandas。我想对两列“A”和“B”进行分组,每当“C”列以一个值开头时,我想在该列中为该特定组重复该值。

在熊猫中,我会做以下事情:

Dask 中的等价物是什么?另外,对于如何在 Dask 中而不是在 Pandas 中构造问题,我有点迷茫,

谢谢你,

到目前为止我的进展:

第一组指数:

然后分组:

0 投票
2 回答
945 浏览

python - 如何在不使用所有工作人员的情况下限制大量任务

想象一下,我有一个包含 10 个工人和 40 个核心的 dask 网格。这是一个共享网格,所以我不想让我的工作完全饱和。我有 1000 个任务要做,我想一次提交(并积极运行)最多 20 个任务。

具体来说,

如果我设置一个队列系统

这会起作用,但是,这只会将我的所有任务转储到网格中,使其饱和。理想情况下,我可以:

似乎这里文档中的示例允许我使用maxsize队列。但从用户的角度来看,我仍然需要处理背压。理想情况下 dask会自动处理这个问题。