gpt4 book ai didi

python - 了解 dask 中的 map_partitions 的作用

转载 作者:行者123 更新时间:2023-12-01 02:28:15 25 4
gpt4 key购买 nike

我试图了解 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
------------

为什么我无法完整打印我的数据框?输出是什么意思?

最佳答案

map_partitions 采用可选的 meta= 关键字,您可以使用该关键字告诉 Dask 您期望函数输出的外观。这通常是一个好主意,因为它避免了 Dask 必须推断输出的外观,这可能会导致发生不重要的工作。

如果没有 meta=,Dask 将首先调用您的函数来推断输出,然后针对每个分区进行推断。您正在看到其中的第一个。如果您提供任何 meta=,您将只能看到分区。显然您想要提供实际的预期输出模板;但在您的情况下,该函数实际上不会返回任何内容。

为了避免过多的推理工作,Dask 使用典型的虚拟值。在本例中,对于每个浮点列,使用 1.0 的值,并且有多个行以确保输入看起来像数据帧而不是系列。

关于python - 了解 dask 中的 map_partitions 的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47138272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com