当我在pyspark中的数据帧上使用重新分区时,它给我一个分区大小为零,并将两种类型的键合并在一起

问题描述

这里是一个例子。单元44的输出显示了不同键的计数,但是当我在单元45中找到分区大小时,它将3和5组合在一起。同样,保存一个分区的大小仍然为零。任何帮助将不胜感激。

解决方法

默认情况下,Spark将HashPartitioner应用于列overint的值。显然,值35在经过散列处理后属于同一分区。

您可能要选择RangePartitioner。或者,如果需要完全的灵活性,还可以编写定制Partitioner类。但是,仅在RDD API上可用,而在结构化API上不可用。