當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。