从 CSV 加载数据时,某些 CSV 无法加载,导致分区为空。我想删除所有空分区,因为某些方法似乎不适用于空分区。我曾尝试重新分区,在那里(例如)repartition(npartitions=10)有效,但大于此值的值仍然会导致空分区。
实现这一目标的最佳方法是什么?谢谢。
小智 10
我发现过滤 Dask 数据框(例如,按日期)通常会导致空分区。如果您在使用带有空分区的数据帧时遇到问题,这里有一个基于 MRocklin 指导的函数来剔除它们:
def cull_empty_partitions(df):
ll = list(df.map_partitions(len).compute())
df_delayed = df.to_delayed()
df_delayed_new = list()
pempty = None
for ix, n in enumerate(ll):
if 0 == n:
pempty = df.get_partition(ix)
else:
df_delayed_new.append(df_delayed[ix])
if pempty is not None:
df = dd.from_delayed(df_delayed_new, meta=pempty)
return df
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1721 次 |
| 最近记录: |