2017-08-29 15 views
0

delayedを使用して計算のグラフを作成するときに、グラフを視覚化すると読みやすくなるように名前を割り当てようとしています。しかし、関数に依存する遅延変数の場合、nameパラメータはキーに影響を与えていないようです。ここでおもちゃの例を示します(私は画像を埋め込むことはできません)Dask Delayedは従属変数の名前を無視します

def calc_avg(a, b): 
    return pd.concat([a, b], axis=1).mean(axis=1) 

def calc_ratio(a, b): 
    return a/b 

a = delayed(pd.Series(np.random.rand(10)), name='a') 
b = delayed(pd.Series(np.random.rand(10)), name='b') 
c = delayed(pd.Series(np.random.rand(10)), name='c') 

x = delayed(calc_avg, name='avg_result')(a,b) 
y = delayed(calc_ratio, name='ratio_result')(x,c) 

y.visualize() 

You can see the visualization hereではなく、より私は「#0 calc_avg-」を参照してというよりも「ratio_resultを」見る「avg_result」見て、私は「を参照calc_ratio-# 1 'である。 x.keyまたはy.keyを見ると、私が提供した名前と一致しません。これは期待される行動ですか?

答えて

0

遅延結果のキーは、遅延した関数と入力した入力のすべての組み合わせに対して一意である必要があります。上記の内容は予想される動作です。関数の名前を付けていますが、異なる入力を持つ呼び出しは異なる出力を期待するため、キーは異なる必要があります。

あなたは、あなたがそれを呼び出すときに遅れ関数を定義していないときに関連した、しかし、あなたが好きなキーを指定することができます。

x = delayed(calc_avg)(a, b, dask_key_name='avg_result') 
y = delayed(calc_ratio)(x, c, dask_key_name='ratio_result') 
+0

どうもありがとうございました! –

関連する問題