2017-11-06 12 views
0

のなにかmap_partitionsを理解しようとしています。ここに私の例である:daskのmap_partitionsについて理解しています

import dask.dataframe as dd 
import pandas as pd 
from dask.multiprocessing import get 
import random 

df = pd.DataFrame({'col_1':random.sample(range(10000), 100), 'col_2': random.sample(range(10000), 100) }) 

def test_f(df): 
    print(df.col_1) 
    print("------------") 

ddf = dd.from_pandas(df, npartitions=8) 

ddf['result'] = ddf.map_partitions(test_f).compute(get=get) 

そして、ここでは、出力されます。

0 1.0 
1 1.0 
Name: col_1, dtype: float64 
------------ 

私は私のデータフレームのうち、完全なプリントを得ることはありませんなぜ?出力はどういう意味ですか?

答えて

1

map_partitionsはオプションのmeta=キーワードを取ります。このキーワードを使用すると、関数の出力結果をどのように見えるかをDaskに伝えることができます。これは、Daskが出力がどのように見えるかを推測することを避けるので、一般的には良いアイデアです。

meta=がない場合、Daskはまず関数を呼び出して出力を推測し、次に各パーティションに対して関数を呼び出します。あなたはこれらの最初を見ている。 meta=を指定すると、パーティションだけが表示されます。実際に期待される出力テンプレートを提供したいと思うでしょう。あなたの場合、関数は実際には何も返しません。

推論のためにあまりにも多くの作業を避けるために、Daskは典型的なダミー値を使用します。この場合、各浮動小数点列には1.0の値が使用され、入力が一連のデータフレームではなくデータフレームのように見えるように複数の行が存在します。

関連する問題