1

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

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

   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。这是我想要的每个分区的后处理长度。

4

1 回答 1

1
df = dd.read_parquet(fn, gather_statistics=False)
df = df.dropna()
df.map_partitions(len).compute()
于 2019-08-14T01:40:38.043 回答