技能 dask
📊

dask

安全 ⚙️ 外部命令📁 文件系统访问🌐 网络访问

使用 Dask 分布式计算扩展 pandas 和 NumPy

也可从以下获取: davila7

使用并行计算处理大于可用 RAM 的数据集。转换单机器 pandas 和 NumPy 工作流,使其可以在多个核心或分布式集群上运行,而无需重写代码。

支持: Claude Codex Code(CC)
📊 71 充足
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“dask”。 How do I read multiple CSV files and combine them into one Dask DataFrame?

预期结果:

  • 使用带通配符模式的 dd.read_csv 读取多个文件:ddf = dd.read_csv('data/2024-*.csv')
  • read_csv 函数是惰性的 - 它构建任务图而不加载数据
  • 合并后,惰性地执行分组操作和聚合操作
  • 只有在需要最终结果时才调用 .compute()

正在使用“dask”。 When should I use Dask Arrays vs Dask DataFrames?

预期结果:

  • 对适合 NumPy 操作的数值数据使用数组 - 科学计算、图像处理、矩阵运算
  • 对带有命名列的表格数据使用数据帧 - 类似数据库的操作、CSV 处理、结构化数据
  • Bags 在转换为数组或数据帧之前处理文本和 JSON 等非结构化数据
  • Futures 为动态的交互式并行工作流提供细粒度控制

正在使用“dask”。 How do I avoid memory errors with Dask?

预期结果:

  • 选择每个分块约 100 MB 或每个核心 10 个分块的块大小
  • 永远不要先加载数据到 pandas 再转换 - 直接使用 Dask 读取器
  • 避免在循环中重复调用 .compute() - 使用 dask.compute() 一次性获取多个结果
  • 使用仪表板监控内存使用情况并识别有问题的任务

安全审计

安全
v4 • 1/17/2026

Pure documentation skill with no executable code. All 448 static findings are false positives. The analyzer misinterpreted markdown inline code formatting (backticks like `dask.compute()`) as shell execution, and flagged legitimate computing terms like 'md5', 'command', 'control', 'connect' as security threats. This is standard Dask library documentation teaching parallel computing patterns.

8
已扫描文件
5,369
分析行数
3
发现项
4
审计总数

风险因素

审计者: claude 查看审计历史 →

质量评分

45
架构
100
可维护性
87
内容
20
社区
100
安全
91
规范符合性

你能构建什么

扩展 pandas 工作流

通过切换导入并使用 Dask 数据帧,以最少的代码更改将 pandas 代码转换为处理大于 RAM 的数据集。

并行模型训练

使用 Dask Futures 将数据预处理和模型推理分布到多个工作节点上进行超参数调优。

处理大型数组

使用分块操作通过 Dask 数组处理来自 HDF5 或 Zarr 文件的、超过内存限制的科学数据集。

试试这些提示

基本数据帧扩展
向我展示如何将我的 pandas DataFrame 代码转换为使用 Dask 来处理超过 RAM 的数据集,包括读取多个 CSV 文件和执行分组操作。
数组分块
解释如何从 HDF5 或 Zarr 文件创建和处理 Dask 数组,包括如何选择分块大小和执行归约操作。
并行 futures
演示如何使用 Dask Futures 进行动态任务提交,包括设置本地集群、分散大型数据以及收集依赖任务的结果。
性能优化
帮助优化我的 Dask 工作流 - 我想了解如何选择正确的调度器、使用仪表板识别瓶颈以及修复由于分块大小不正确导致的内存问题。

最佳实践

  • 从一开始就让 Dask 处理数据加载 - 避免在本地创建 pandas 对象后再转换为 Dask 集合
  • 目标分块大小为 100 MB,每个工作核心 10 个分块,以实现平衡的并行性和内存使用
  • 使用 map_partitions 或 map_blocks 将多个操作融合到单个任务中,减少调度开销

避免

  • 在循环内调用 .compute() 会为每次迭代创建单独的任务图 - 应使用 dask.compute(*computations)
  • 在将数据交给 Dask 之前先将整个数据集加载到 pandas 中违背了 Dask 的目的 - 应直接使用 Dask 读取器
  • 对纯 Python 代码(文本处理、自定义函数)使用线程调度器 - 应切换到进程以避免 GIL 争用

常见问题

什么是 Dask?
Dask 是一个用于并行和分布式计算的 Python 库,可将 pandas 和 NumPy 工作流扩展到更大的数据集。
使用 Dask 需要集群吗?
不需要 - Dask 可以在单机上使用多个核心。分布式集群仅用于非常大的工作负载。
Dask 需要多少内存?
Dask 通过分块处理大于 RAM 的数据集。目标是每个工作核心约 10 个分块,每个分块约 100 MB。
我可以将 Dask 与 pandas 一起使用吗?
可以 - Dask 数据帧模仿 pandas API。许多 pandas 操作可以直接使用,只需少量或无需代码更改。
我应该选择什么调度器?
线程最适合 pandas/NumPy(释放 GIL)。对纯 Python 代码使用进程。对调试使用同步方式。
Dask 会取代 pandas 吗?
不能 - Dask 扩展了 pandas 以处理更大的数据。对于适合内存的数据,单独的 pandas 更简单更快。

开发者详情

文件结构