【问题标题】:specify partitions size with spark使用 spark 指定分区大小
【发布时间】:2018-01-04 08:36:13
【问题描述】:

我正在使用 spark 处理大文件,我有 12 个分区。 我有 rdd1 和 rdd2 我在它们之间进行连接,而不是选择(rdd3)。 我的问题是,我咨询了最后一个分区比其他分区太大,从分区 1 到分区 11 45000 recodrs 但分区 12 9100000 recodrs。 所以我划分了9100000 / 45000 =~ 203。我将我的 rdd3 重新分区为214(203+11) 但我最后一个分区还是太大了。 如何平衡分区的大小?

我自己写的自定义分区器?

【问题讨论】:

  • 是的 repartitionpartitionBy
  • 你能详细说明你尝试了什么以及你得到的反馈表明它们没有奏效吗?
  • 另外请附上代码,以便我们可以看到您在重新分区的过程中。
  • 我自己写的自定义分区器?
  • 需要有关您的数据的更多详细信息。对键进行分区。如果您的大多数键相同,则其中一个分区将很大。

标签: scala apache-spark rdd


【解决方案1】:

我有 rdd1 和 rdd2 我在它们之间建立一个连接

join 是 Spark 最昂贵的操作。为了能够通过键加入,您必须对值进行洗牌,如果键不是均匀分布的,您会得到描述的行为。在这种情况下,自定义分区程序不会帮助您。

我会考虑调整逻辑,所以它不需要完全连接。

【讨论】:

    猜你喜欢
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多