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

使用spark指定分区大小

易烨磊
2023-03-14

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

我的i编写自己的自定义分区程序?

共有1个答案

裴弘
2023-03-14

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

< code>join是Spark中开销最大的操作。为了能够通过键连接,您必须打乱值,如果键不是均匀分布的,您会得到描述的行为。在这种情况下,自定义分区程序帮不了你。

我会考虑调整逻辑,这样就不需要完全连接。

 类似资料:
  • 我使用pyspark,我有一个大型数据源,我想重新分区,明确指定每个分区的文件大小。 我知道使用< code>repartition(500)函数会将我的拼花分解成500个大小几乎相同的文件。问题是每天都有新数据添加到这个数据源中。有些日子可能会有大量的投入,有些日子可能会有少量的投入。因此,当查看一段时间内的分区文件大小分布时,每个文件的大小在< code>200KB到< code>700KB之

  • 我有四个问题。假设在spark中有3个worker节点。每个工人节点有3个执行器,每个执行器有3个核心。每个执行器有5 gb内存。(总共6个执行器,27个内核,15GB内存)。如果: > 我有30个数据分区。每个分区的大小为6 GB。最佳情况下,分区的数量必须等于核心的数量,因为每个核心执行一个分区/任务(每个分区执行一个任务)。在这种情况下,由于分区大小大于可用的执行器内存,每个执行器核心将如何

  • 当在火花中进行连接时,或者通常是对于随机操作,我可以设置分区的最大数量,我希望火花在其中执行此操作。 按留档: 火花sql。洗牌分区200配置在为联接或聚合洗牌数据时要使用的分区数。 如果我想减少每个任务中必须完成的工作量,我必须估计数据的总大小并相应地调整此参数(分区越多,意味着单个任务中完成的工作量越少,但任务越多)。 我想知道,我能告诉spark根据数据量简单地调整分区的数量吗?一、 e.在

  • 我一直在使用SE上发布的问题的一个极好的答案来确定分区的数量,以及跨数据帧的分区分布需要知道数据帧Spark中的分区详细信息 有人能帮我扩展答案来确定数据帧的分区大小吗? 谢谢

  • 找到给定RDD的每个分区大小的最佳方法是什么。我正在尝试调试一个扭曲的分区问题,我尝试了以下方法: 它适用于小型RDD,但对于大型RDD,它会产生OOM错误。我的想法是,导致了这种情况的发生。但不管怎样,我只是想知道有没有更好的方法?

  • 我是Spark的新手,有一个1 TB的文件需要处理。 我的系统规格是: 每个节点:64 GB RAM 节点数:2 每个节点的核心:5 正如我所知,我必须重新分区数据以获得更好的并行性,因为火花将尝试仅通过(核心总数*2或3或4)创建默认分区。但在我的情况下,由于数据文件非常大,我必须将这些数据重新分区为一个数字,以便这些数据可以以有效的方式处理。 如何选择要在重新分区中传递的分区数??我应该如何计