Dask - 获取 Dask 数据帧中每个分区的行长度的最快方法

Dask - Quickest way to get row length of each partition in a Dask dataframe

我想获取多个数据帧中每个分区的长度。我目前正在获取每个分区,然后获取每个分区的索引大小。这非常非常慢。有没有更好的方法?

这是我的代码的简化片段:

   temp_dd = dd.read_parquet(read_str, gather_statistics=False)
   temp_dd = dask_client.scatter(temp_dd, broadcast=True)
   dask_wait([temp_dd])
   temp_dd = dask_client.gather(temp_dd)

   while row_batch <= max_row:
       row_batch_dd = temp_dd.get_partition(row_batch)
       row_batch_dd = row_batch_dd.dropna()    
       row_batch_dd_len = row_batch_dd.index.size  # <-- this is the current way I'm determining the length
       row_batch = row_batch + 1

我注意到,在读取镶木地板时,我不能简单地使用镶木地板信息(速度非常快),因为在读取之后,我会逐个分区地进行处理,然后删除 NaN .这是我想要的每个分区的 post 处理长度。

df = dd.read_parquet(fn, gather_statistics=False)
df = df.dropna()
df.map_partitions(len).compute()