我想获取多个数据帧中每个分区的长度。我现在正在获取每个分区,然后获取每个分区的索引大小。这非常非常慢。有更好的方法吗?
这是我的代码的简化片段:
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。这是我想要的每个分区的后处理长度。
答案 0 :(得分:1)
df = dd.read_parquet(fn, gather_statistics=False)
df = df.dropna()
df.map_partitions(len).compute()