Spark分区

问题描述 投票:0回答:1

需要重新分区数据。如何确定Spark中的分区大小。

其分区概念适用于Spark流和结构化流。

DF.repartition(num)

apache-spark apache-spark-sql spark-streaming spark-structured-streaming
1个回答
0
投票

是的,分区概念适用于火花流(RDD)和结构化流(结构化API)。

在应用映射类型和过滤器类型操作时,除其他事项外,可以使用数据分区来提高级别的并行性。

注意,当您对数据进行分区时,无论是否有必要,都将总是进行完全随机播放。这适用于两个API(RDD和结构化)。

有时,由于可以在分区内更改数据,因此对数据进行重新分区可以避免随机播放并提高性能。例如,如果您知道将要多次过滤某个列(例如“国家”),则值得根据该列进行重新分区:

df.repartition(col("country"))

RDD与结构化API之间的主要区别在于,仅对于RDD(对于Spark Streaming而言),您可以定义自己的Partitioner类。这为您提供了如何对数据进行分区的所有灵活性,因此,如果使用正确,则可以显着提高性能和稳定性。

© www.soinside.com 2019 - 2024. All rights reserved.