我通过ID加入了2个大表(数十亿x行)。例如,
table1.join(table2, Seq("id"))
我的火花作业到了这一点"相当快":
Stage 19: 60000/60001 (1 running)
问题是,这1个运行工作需要数小时,这比其他工作多。
==>如何确定联接中的哪个"键"导致长期运行?
==>有没有办法写信给执行人的Stdout以提供更多调试信息?
,因为您是根据列ID
加入的我遵循的一件简单的事情是计数最大出现ID。
df.groupBy("id").count.sort(desc("count")).take(10).foreach(println)
这将为您提供前10名" ID",该" ID"具有最大数量的数据集中。