我们正在使用 foreachBatch 功能在结构化流上运行重复数据删除操作。
但是,写入操作似乎并不遵守我们在工作簿中设置的随机分区数
spark.conf.set("spark.sql.shuffle.partitions","auto")
随机分区的数量似乎是默认的 200,这在我们的例子中并不是最优的。另外 - 在将 pyspark 版本升级到 3.5.0 之前 - 作业不断崩溃。现在有 200 个作业运行很长时间。
有什么建议吗?
回答我自己的问题:需要在运行流之前设置spark.sql.shuffle.partitions,并且不能使用“auto”。