当前位置: 首页 > 知识库问答 >
问题:

增加或减少聚合的分区?

祝锐
2023-03-14

我不确定在进行聚合操作时应该增加还是减少分区数量。假设我正在使用pyspark数据框架。pyspark 1.6.1

我知道行转换通常需要更多的分区。而将数据保存到磁盘通常需要fewere分区。

但是,对于聚合,我不清楚在pyspark中做什么??

增加分区数的参数:由于我们必须为聚合而洗牌数据,因此您希望洗牌更少的数据,从而增加分区数,以减小分区的大小。

减少分区数量的论点:IT需要大量开销来收集和计算每个分区。因此,太多的分区将导致太多的开销,并且pyspark作业可能会超时。

是哪一个?

资料来源:https://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/

共有1个答案

杜思远
2023-03-14

那要看情况,

根据问题使用用户定义的分区会使某些事情变得更容易,而另一些事情则更难。但这就是我的经验。

当出现聚合函数后跟数据浓缩时,我使用了这种方法。默认数据划分发生了什么。由于这个原因,我遇到了一个OOM错误和其他一些问题。所以我的数据浓缩聚合使用了我的工作人员无法支持的更多内存。解决方案是增加该步骤的分区数量并解决了我的问题,但由于洗牌和其他原因,它需要更多的执行时间。

这个案例是关于洗牌时间的,我有一个Cassandra集群和火花在一起,使用datasax连接器,我试图从Cassandra中读取一些具有200个默认分区的数据。但是所有数据都在同一台机器中,当我做一个简单的聚合时,这会产生大量的洗牌。所以我减少了分区,减少了洗牌时间。

您需要了解您的数据以及您想要做什么。数据处理没有魔力。你需要检查你需要做什么以及如何做。它将有助于选择要做什么,或者增加或减少分区。

 类似资料:
  • 本文向大家介绍Kafka 分区数可以增加或减少吗?为什么?相关面试题,主要包含被问及Kafka 分区数可以增加或减少吗?为什么?时的应答技巧和注意事项,需要的朋友参考一下 我们可以使用 bin/kafka-topics.sh 命令对 Kafka 增加 Kafka 的分区数据,但是 Kafka 不支持减少分区数。 Kafka 分区数据不支持减少是由很多原因的,比如减少的分区其数据放到哪里去?是删除,

  • 问题内容: 如何使用Java增加输出的WAV音频流的音量?我在使用各种Java TTS引擎和合成语音的输出量时遇到问题。有可以用来调高音量的API调用或doo- hickey.jar吗? 问题答案: 如果您使用的是Java Sound API,则可以使用MASTER_GAIN控件设置音量。

  • 接口说明 该接口由变现猫开放给开发者,开发者进行调用 接口地址:https://api.bianxianmao.com/waji/user/changeWabi 请求方式:POST 请求参数: 参数 是否必须 参数类型 限制长度 参数说明 appUid yes string 255 app用户id appKey yes string 255 接口appKey,应用的唯一标识 amount yes

  • 问题内容: 我有一个看起来像这样的表: 并且我想计算出上一日期的column的增加/减少百分比。例如,结果将是这样的, 我已经搜寻并绞尽脑汁了几天。通常,我只是使用服务器端代码来完成此操作,但是现在我需要将其全部包含在查询中。 问题答案: 试试这个:

  • 问题内容: 我正在使用Java创建即时贴应用程序。 我想做的事:每次单击 增加大小时,我想增加内部文本的大小。我显然会知道如何做相反的事情。 短代码: 问题答案: 为了使代码更通用,您可以在ActionListener中执行以下操作:

  • 假设方法和的责任密切相关 第一个例子: 如果 •和在class中定义(因此class具有高度的内聚性) •类别使用和类别使用 然后 •与和类耦合 •更改的签名只需要更改,而不需要更改 第二个例子: 如果 •在类中定义(因此与耦合) •用类定义(因此与耦合) 然后 •更改的签名只需要更改,而不需要更改 a) 据我所知,上一个例子中的类与第一个例子中的类并不耦合!还是我错过了什么? b) 据我所知,第