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()
我想获取多个数据帧中每个分区的长度。我目前正在获取每个分区,然后获取每个分区的索引大小。这非常非常慢。有没有更好的方法?
这是我的代码的简化片段:
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()