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

在Apache Spark中对齐分区中Java元素数量

夹谷星纬
2023-03-14

我有两个JavaRDD

  1. RDD 必须拆分到相同数量的分区上
  2. 每个分区必须具有相同数量的元素

此外,根据 Spark 文档,我正在使用 RDD 上保留排序的方法,以便最终关联是正确的(尽管这不会引发任何异常)。现在,问题是即使我能够保持分区数量一致,例如代码

JavaRDD<Double> rdd1Repatitioned = rdd1.repartition(rdd2.getNumPartitions());

我不知道怎么做(以及什么给了我异常)的是控制每个分区中条目的数量。我找到了一个暂时有效的解决方法,那就是重新初始化我想要关联的两个rdd

    List<Double> rdd1Array = rdd1.collect();
    List<Double> rdd2Array = rdd2.collect();

    JavaRDD<Double> newRdd1 = sc.parallelize(rdd1Array);
    JavaRDD<Double> newRdd2 = sc.parallelize(rdd2Array);

但我不确定这能保证我关于一致性的任何信息。其次,在某些情况下,计算成本可能非常昂贵。有没有办法控制每个分区中的元素数量,或者一般来说在两个或多个RDD中重新对齐分区(我或多或少知道分区系统是如何工作的,我知道从分布的角度来看这可能很复杂)?


共有1个答案

况经纬
2023-03-14

好吧,这对我很有效:

Statistics.corr(rdd1.repartition(8), rdd2.repartition(8))
 类似资料:
  • 问题内容: 我是CSS的新手,有一个简单的登录表单,试图正确对齐。基本上是两列,一列带有标签和“ 登录” 按钮,另一列是文本框。如何在CSS中做到这一点? HTML代码是: 问题答案: 这是一种有效的方法: 调整尺寸和边距以适合您的用例和美观。

  • 我正在使用angular 2与Bootstrap 4和angular Material。然而,我有困难正确地对齐我的容器div中的元素。我希望我的按钮和文本都对齐到右手边 下面是我尝试生成如照片所示结果的代码 我也从StackOverflow尝试过这个解决方案 这两种解决方案都不会将元素向右移动。我做错了什么?

  • 问题内容: 我有一个包含两个图片的div和一个。它们都需要在div内垂直对齐,彼此相邻。 其中一张图片需要放在div内。 要在所有常见的浏览器上运行,需要什么CSS? 问题答案: 简而言之: 内联元素 (并且 仅 内联元素)可以在上下文中垂直对齐。但是,“上下文”不是整个父容器的高度,而是它们所在的文本行的高度 对于块元素,垂直对齐更加困难,并且在很大程度上取决于特定情况: 如果内部元件可以有一个

  • 问题内容: 我想有A B和C中间对齐。 我如何才能D完全右移? 问题答案: 以下是实现此布局的五个选项: CSS定位 带有不可见DOM元素的Flexbox 带有不可见伪元素的Flexbox Flexbox与 flex: 1 CSS网格布局 方法1:CSS定位属性 应用于容器。 应用于项目D。 现在,此项目已完全放置在flex容器中。 更具体地说,项目D从文档流中删除,但停留在最接近的祖先的范围内。

  • 问题内容: 我正在使用iTextSharp将数据填充到在OpenOffice中创建的PDF模板中。它填充得很好,我正在获取适当的PDF。在该PDF中,有一些摘要会出现,那个地方我想使该文本与模板对齐。 我正在下面的代码,但它不起作用。 请帮忙。 谢谢。 问题答案: 假设您有一个纯AcroForm而不是我在注释中指出的混合表格,这就是更改字段四边形的方法: 错误地假设,四边形不是字段标志的一部分。它

  • 在Apache Spark中, -允许将RDD精确划分为分区。 而是如何将给定的RDD划分成分区,使得所有分区(最后一个分区除外)都具有指定数量的元素。鉴于RDD元素的数量是未知的,做<代码>。count()的开销很大。 预期: