所以我正在加载一个约500万行,约80列的数据框。
其中一列称为X,它具有约17000个唯一的字符串值,并且值计数分布良好且均匀(即,没有X的值过于频繁)。
我想按X分组数据,并为其余的列做一些汇总指标。因此,我认为最好先在X上分区并缓存数据。
df.repartition(400, 'X')
df.cache().count()
但是, 所有缓存的数据最终都存储在单个执行器上 ,这对于随后的分析非常不理想。
有趣的是,删除了“ X”上的分区后:
df.repartition(400)
df.cache().count()
数据均匀地分布在所有节点上。
问题: