火花分区

时间:2020-05-05 18:03:01

标签: apache-spark apache-spark-sql spark-streaming spark-structured-streaming

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

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

DF.repartition(num)

1 个答案:

答案 0 :(得分:0)

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

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

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

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

df.repartition(col("country"))

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