Scala 数据帧分区在运行期间正在更改

Scala 数据帧分区在运行期间正在更改,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我注意到程序中数据帧的分区数量发生了变化。我的意思是,我想使用特定数量的分区来运行程序,比如:256。问题是,当出现一个联合时,结果数据帧汇总了联合中涉及的数据帧的分区数。例如,初始数据帧具有256分区,结果数据帧将具有512 我不知道在所有执行过程中保持256分区有多重要。另外,我不知道在带有512分区的df和另一个带有256分区的df之间执行另一个新的union是否会对某些内容产生影响,或者我是否应该在执行union之前应用重新分区 我希望澄清,有关更多信息,请让我知道我不会担心分区数量的增

我注意到程序中数据帧的分区数量发生了变化。我的意思是,我想使用特定数量的分区来运行程序,比如:
256
。问题是,当出现一个
联合
时,结果数据帧汇总了联合中涉及的数据帧的分区数。例如,初始数据帧具有
256
分区,结果数据帧将具有
512

我不知道在所有执行过程中保持
256
分区有多重要。另外,我不知道在带有
512
分区的df和另一个带有
256
分区的df之间执行另一个新的
union
是否会对某些内容产生影响,或者我是否应该在执行
union
之前应用
重新分区


我希望澄清,有关更多信息,请让我知道

我不会担心分区数量的增加,除非它会导致性能问题。如果要在联合后重新创建分区数,应使用dataframe.coalesce(256)而不是dataframe.repartition(256)如果使用完全洗牌,则使用部分洗牌将更有效。我的建议是在不更改分区的情况下测试性能,看看哪个性能最好。

您正在使用哪个spark版本?使用Spark 1.3版本更正了UNION的这种行为。我使用的是Spark 2.2.0您想给出具体数字的具体原因是什么?这可能只对一小部分数据起作用&如果您的数据非常庞大,那么可能会导致堆空间异常&而且您正在限制并行线程