我有一个用sparksql编写的spark作业,版本1.6.2,需要加入23个几乎相同大小的表。
每个表都是从同一个源表生成的,因此它们几乎具有相同的大小(所有这些表都有大约5514319行,源表csv大约是1.5GB)。所有这些表都连接在同一列上,此列中的大多数值都是唯一的(整列中不超过7个重复项)。但是,键列是字符串格式而不是数字。
我需要加入这23个表并从每个表中选择一个或两个列并使用saveAsTable和
保存它我的工作现在总是在最后阶段被冻结,在200个任务中,前199个任务能够在5到10分钟内完成但最后一个从未完成,并且只有一个执行者在上面工作。
它显示了偏斜数据的症状,但我该如何解决?
我正在考虑将这23个连接分成不同的阶段,但这真的有帮助吗?