当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.highlevelgraph.HighLevelGraph用法及代码示例


用法:

class dask.highlevelgraph.HighLevelGraph(layers: Mapping[str, Mapping], dependencies: Mapping[str, Set], key_dependencies: dict[Hashable, Set] | None = None)

由依赖子图层组成的任务图

该对象编码一个由依赖子图层组成的 Dask 任务图,例如在使用 Dask 数组、包或数据帧等高级集合构建任务图时通常发生的情况。

通常,每个高级数组、包或 DataFrame 操作都会获取输入集合的任务图,将它们合并,然后为新操作添加一个或多个新的任务层。这些层通常至少具有与集合中的分区或块一样多的任务。 HighLevelGraph 对象将每个操作的子图分别存储在sub-graphs 中,并且还存储了它们之间的依赖结构。

参数

layers映射[str, 映射]

子图层,以唯一名称为键

dependencies映射[str, set[str]]

每层所依赖的层集

key_dependencies映射[Hashable, set],可选

将高级图中的(某些)键映射到它们的依赖项。如果缺少 key ,则将即时计算其依赖关系。

例子

这是一个理想化的示例,显示了 HighLevelGraph 的内部状态

>>> import dask.dataframe as dd
>>> df = dd.read_csv('myfile.*.csv')  
>>> df = df + 100  
>>> df = df[df.name == 'Alice']
>>> graph = df.__dask_graph__()  
>>> graph.layers  
{
 'read-csv': {('read-csv', 0): (pandas.read_csv, 'myfile.0.csv'),
              ('read-csv', 1): (pandas.read_csv, 'myfile.1.csv'),
              ('read-csv', 2): (pandas.read_csv, 'myfile.2.csv'),
              ('read-csv', 3): (pandas.read_csv, 'myfile.3.csv')},
 'add': {('add', 0): (operator.add, ('read-csv', 0), 100),
         ('add', 1): (operator.add, ('read-csv', 1), 100),
         ('add', 2): (operator.add, ('read-csv', 2), 100),
         ('add', 3): (operator.add, ('read-csv', 3), 100)}
 'filter': {('filter', 0): (lambda part: part[part.name == 'Alice'], ('add', 0)),
            ('filter', 1): (lambda part: part[part.name == 'Alice'], ('add', 1)),
            ('filter', 2): (lambda part: part[part.name == 'Alice'], ('add', 2)),
            ('filter', 3): (lambda part: part[part.name == 'Alice'], ('add', 3))}
}
>>> graph.dependencies  
{
 'read-csv': set(),
 'add': {'read-csv'},
 'filter': {'add'}
}

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.highlevelgraph.HighLevelGraph。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。