scala - 在 DAG 中为 Spark 中的相同操作生成重复作业
问题描述
我有一个火花流作业,我从消息队列接收数据并处理一堆记录。在此过程中,我在数据集上有一个take()方法。尽管采取行动以预期的方式发生,但在 DAG 可视化中,我看到创建了多个作业 ID,并且它们都具有相同的采取行动。仅当数据为数十万条记录时才会发生这种情况。在本地机器上运行数十条记录时,我没有观察到多余的作业。谁能帮我理解这种行为背后的原因?
作业 ID -(91 到 95)基本上运行相同的操作。以下是与上述操作相对应的代码片段。
val corruptedMessageArray: Array[ String ] = corruptedMessageDs.take(1);
if ( !corruptedMessageArray.isEmpty ) {
val firstCorruptedMessage: String = corruptedMessageArray( 0 )
}
解决方案
您的问题似乎是 Spark 是否创建了重复的作业。
如果您查看屏幕截图,您会发现作业具有不同数量的任务,因此这不是简单的重复问题。
我不确定到底发生了什么,但似乎对于大型数据集take()
需要几个快速的后续工作。也许是因为它设计了工作,也许是因为它需要尝试需要完成多少工作。
推荐阅读
- hibernate - 获取 region_prefix 以使用 redisson-hibernate-53 L2 缓存
- swift - 检查通用组合发布器输出 Swift 的类型
- python - 加密凭证进行rest api get方法调用
- owl-carousel-2 - Owl Carousel 忽略了项目选项
- python-3.x - Zip() 将列表组合成一个元组
- java - 为什么我们需要在休眠的@OneToMany 注释侧中使用辅助方法?
- pygame - 我需要帮助我无法在 pygame 中加载图像我的图像在正确的位置
- mit-scratch - 如何不从头开始
- html - 如何更改自述文件 png 大小
- python - Odoo xml树视图未显示所有预期结果