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

apache波束中再分区的等效性

姜凯风
2023-03-14

在spark中,如果我们必须重新洗牌数据,我们可以使用重新分区一个DataFrame。在apache beam中为pCollection做同样的事情的方法是什么?

在pyspark,

new_df = df.repartition(4)

共有1个答案

拓拔迪
2023-03-14

来自此文档:

您可以插入重新洗牌步骤。重新洗牌防止融合,检查数据,并执行记录的重复数据删除。Dataflow支持重新洗牌,尽管它在Apache Beam文档中被标记为不推荐。

虽然我不确定重新洗牌是否会得到梁的其他跑步者的支持。

 类似资料:
  • 我正在构建一个读取Avro通用记录的管道。为了在各个阶段之间传递GenericRecord,我需要注册avrocoder。文档表明,如果我使用通用记录,模式参数可以是任意的:https://beam.apache.org/releases/javadoc/2.2.0/org/apache/beam/sdk/coders/avrocoder.html#of-java.lang.class-org.a

  • 在我的数据流作业中,我需要初始化配置工厂,并在实际处理开始之前将某些消息记录在审核日志中。 我将配置工厂初始化代码审计日志记录放在父类PlatformInitializer中,并在我的主管道类中扩展它。 因此,我还必须在我的管道类中实现可序列化接口,因为beam抛出了错误-<代码>java。io。NotSerializableException:组织。德维塔姆。自定义作业 在PlatformIni

  • 等效分区是一种软件测试技术,其中输入数据被划分为有效值和无效值的分区,并且所有分区必须表现出相同的行为。如果一个分区的条件为真,则另一个等效分区的条件也必须为真,如果一个分区的条件为假,则另一个等效分区的条件也必须为假。等价划分的原则是,测试用例应设计为至少覆盖每个分区一次。每个等效分区的每个值必须表现出与其他分区相同的行为。 等效分区源自软件的要求和规范。这种方法的优点是,它有助于减少测试时间,

  • 我们在实验中发现,在DataFlow/Apache Beam管道中设置显式的输出碎片#会导致更差的性能。我们的证据表明,Dataflow在最后秘密地做了另一个GroupBy。我们已经转向让Dataflow自动选择碎片数(shards=0)。但是,对于某些管道,这会导致大量相对较小的输出文件(~15K文件,每个<1MB)。

  • 这与这个问题最为相似。 我正在Dataflow 2.x中创建一个管道,它从Pubsub队列获取流式输入。进入的每一条消息都需要通过来自Google BigQuery的一个非常大的数据集进行流式传输,并且在写入数据库之前附加了所有相关的值(基于一个键)。 问题是来自BigQuery的映射数据集非常大--任何将其用作侧输入的尝试都失败了,数据流运行程序会抛出错误“java.lang.IllegalAr

  • 我正在将我的google dataflow java 1.9迁移到beam 2.0,并尝试使用BigtableIO。写 在大舞台前的巴黎公园里,我正在努力让它变得更容易接受。 上述代码引发以下异常InvalidProtocolBufferException:协议消息结束组标记与预期标记不匹配 v是对象列表(Vitals.class)。hbase api使用Put方法创建变异。如何创建将与Bigta