pyspark Spark SQL Window函数-需要手动重新分区吗?

xxhby3vn  于 2023-03-11  发布在  Spark
关注(0)|答案(1)|浏览(223)

我正在用PySpark处理按A列分区的数据。
现在,我需要在另一列“B”上使用窗口函数来获取此帧的最大值,并为新条目计数。
here所示,“此外,用户可能希望确保在排序和计算帧之前,将类别列具有相同值的所有行收集到同一台计算机上。"
在应用窗口之前,我需要手动地按列“B”重新划分数据吗?还是Spark会自动地这样做?
即我是否必须:

data = data.repartition("B")

之前:

w = Window().partitionBy("B").orderBy(col("id").desc())

多谢了!

zbdgwd5y

zbdgwd5y1#

如果您使用Window.partitionBy(someCol),那么如果您没有为shuffle partitions参数设置值,那么分区将默认为200。
类似但不相同的帖子应提供指导。spark.sql.shuffle.partitions of 200 default partitions conundrum
因此,简而言之,您不需要明确地执行重新分区,shuffle partitions参数更相关。

相关问题