scala - 计数后 Spark 作业快速运行
问题描述
我有一个 scala 作业,它的 CDC 记录很少(10K 记录),作为合并作业的一部分,它从具有 400 万个成员的其他 Hive 表中进行成员匹配(400 万),从具有 100 万个成员的其他 Hive 表中匹配提供者提供者和一堆其他东西(回收逻辑/拒绝逻辑)通常需要大约 30 分钟才能完成。使用相同的音量,我在每个模块之后添加了操作(count(*)),以了解哪个模块需要更多时间,但是在使用操作后,它在 6 分钟内完成。通常根据最佳实践,我们不应该经常使用动作,但是我不明白是什么让工作运行得很快?任何带有解释的链接都会有所帮助。
是不是因为资源可能在每个模块执行后由于动作而被释放,所以它使整个工作运行得很快。
我的集群是 6 个节点,有 13 核机器和 64GB 内存,但是还有其他进程也在运行..所以它通常被过度使用。
解决方案
推荐阅读
- java - 如何配置后退按钮?
- c# - 如何邀请机器人参加 Microsoft Teams 实时活动
- apache-spark - pyspark 作业因“ OperationalError:(SQLDriverConnect) ”而失败
- c++ - 如何制作可以由用户自动调整大小的可调整大小的 QLabel
- java - 在卷轴时间内从 .jsp 页面中的 java 类方法打印文本
- python - python查询来自bigquery的数据,其中使用全局变量的where子句
- node.js - 无法卸载cordova -bash:卸载:找不到命令
- c++ - 如何创建类方法以返回现有类字段的子字符串(字符串类型)
- javascript - 不确定为什么 Bootstrap 4 列表中有一个“未定义”标题
- c++ - C++ 单元测试 - 使用硬编码或生成的数组