8

次のコードを実行すると、dask.dataframe.head() の結果は npartitions に依存します。

import dask.dataframe as dd
import pandas as pd
df = pd.DataFrame({'A': [1,2,3], 'B': [2,3,4]})
ddf = dd.from_pandas(df, npartitions = 3)
print(ddf.head())

これにより、次の結果が得られます。

   A  B
0  1  2

ただし、npartitions を 1 または 2 に設定すると、期待どおりの結果が得られます。

   A  B
0  1  2
1  2  3
2  3  4

npartitions がデータフレームの長さよりも短いことが重要なようです。これは意図したものですか?

4

1 に答える 1

4

ドキュメントによるとdd.head()、最初のパーティションのみをチェックします。

head(n=5, compute=True)

データセットの最初の n 行

警告、これは最初のパーティションの最初の n 行のみをチェックします。

したがって、答えはイエスdd.head()です。これは、dask データフレームに存在するパーティションの数に影響されます。

ただし、最初のパーティションの行数は、使用時に通常表示したい行数よりも多いことが予想されますdd.head()— そうでない場合、dask を使用しても効果はありません。これが当てはまらない唯一の一般的なケースは、この質問nで説明されているように、フィルタリング後に最初の行/要素を取得する場合です。

于 2016-07-09T16:03:53.300 に答える