Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Dask数据帧中的分区之间分布行_Python_Pandas_Dask - Fatal编程技术网

Python 在Dask数据帧中的分区之间分布行

Python 在Dask数据帧中的分区之间分布行,python,pandas,dask,Python,Pandas,Dask,期望:我期望,当我对给定的数据帧进行分区时,行将大致均匀地分布到每个分区中。然后我希望,当我将数据帧写入csv时,得到的n个csv(在本例中为10)的长度大致相同 现实:当我运行下面的代码时,我发现所有行都在export\u results-0.csv中,而剩下的9个csv是空的,而不是一些均匀分布的行 问题:是否需要设置其他配置以确保行分布在所有分区中 from dask.distributed import Client import dask.dataframe as dd import

期望:我期望,当我对给定的数据帧进行分区时,行将大致均匀地分布到每个分区中。然后我希望,当我将数据帧写入csv时,得到的n个csv(在本例中为10)的长度大致相同

现实:当我运行下面的代码时,我发现所有行都在
export\u results-0.csv中,而剩下的9个csv是空的,而不是一些均匀分布的行

问题:是否需要设置其他配置以确保行分布在所有分区中

from dask.distributed import Client
import dask.dataframe as dd
import pandas as pd

client = Client('tcp://10.0.0.60:8786')

df = pd.DataFrame({'geom': np.random.random(1000)}, index=np.arange(1000))
sd = dd.from_pandas(df, npartitions=100)

tall = dd.merge(sd.assign(key=0), sd.assign(key=0), on='key').drop('key', axis=1)
tall.to_csv('export_results-*.csv').compute()

关于上面的代码:在下面的代码中,我创建了一个1000行的数据帧,并将其与自身合并,以创建一个1000000行长的数据帧(目标是最终生成一个薄而高的表,其中包含从100k+列表中任何一个到任何其他几何体的距离)。

,Dask文档的dataframe performance部分指出,两个Dask数据帧之间的连接可能非常昂贵

通过将Dask数据帧连接到熊猫数据帧,我似乎能够保留分区。下面是对上述代码的示例修改:

df1 = pd.DataFrame({ 'geom': np.random.random(200) }, index=np.arange(200))
sd1 = dd.from_pandas(df1.copy(), npartitions=5).assign(key=0)

tall = dd.merge(sd1, df1.assign(key=0), on='key', npartitions=10).drop('key', axis=1)
tall.to_csv('exported_csvs/res-*.csv')
现在,这实现了维护分区的目标。也就是说,我仍然有兴趣理解为什么在合并两个Dask数据帧时分区似乎不能被保留