Spark UI输入列的值太高

时间:2019-03-01 08:30:56

标签: apache-spark

我开始了spark工作并监视该过程,我检查了spark提供的Web UI。在执行程序页面上,我看到输入为305 GB,并且正在增加。

将鼠标悬停在 Input 列上时,我得到以下描述

  

从Hadoop或Spark存储读取的字节和记录

我的输入数据只有300 MB,但是 Input 列显示了305 GB。这是预期的行为吗?所有额外的GB输入来自哪里? 如果不是,是什么原因导致这种行为?

1 个答案:

答案 0 :(得分:0)

您的查询本质上过于笼统。但是,我将尝试将其与我所发生的事件之一联系起来。我也发生过类似的事件。如果有帮助,我可以分享执行细节。

我正在运行一系列Spark SQL语句(带有Joins和filter),但这项工作根本没有完成。经过在Spark Web UI中的仔细分析,我意识到其中一个阶段的输入正在运行到GB,因为我的数据太小了(小于100 MB)。

我检查了SQL查询并在数据级别进行了调试,才意识到其中一个JOINS引起了问题。由于形成了笛卡尔连接,因此记录数量激增至数百万。由于错误的连接条件,导致运行时数据创建。解决了连接问题后,该问题就解决了。

请检查您的代码。您可能会获得更多见解。单独使用Spark不会创建数据。