Spark 创建的用于从 S3 读取输入表的任务

问题描述

我试图了解 Spark 为从 S3 读取输入表而产生的任务数量。 Spark 如何计算从 S3 读取表所需的分区数?

注意:我已经在网上搜索了这个,但找不到具体的答案。所以请不要禁用这个问题。如果这已经在其他地方讨论过,那么请指出我的方向。

我正在尝试从 S3 读取一个表 (20 MB) 并执行一个简单的查询。 “客户”表的基础文件驻留在 S3 上,并分布在 3 上的 S3文件中。例如-

2021-04-22 08:25:49 101102532 part-00000-2e9e15c47-1b5a-46d2-9d12--07779ea50c14-c000
2021-04-22 08:25:50 208974016 part-00001-2e9e15c47-1b5a-46d2-9d12--07779ea50c14-c000
2021-04-22 08:25:51 101966695 part-00002-2e9e15c47-1b5a-46d2-9d12--07779ea50c14-c000

查询很简单-

select
cust_id,count(*) as cnt
from customers
group by cust_id
having count(*) > 1

现在,在 Spark UI 中,它显示创建了 3 个任务来读取上面的输入“客户”表。

同样,我还有另一个大表(总共 6 GB),它分布在存储在 S3(如下所示)上的 50 个文件,并在Spark UI 显示需要60 个任务来读取此输入。

产品表(显示了 50 个拆分中的 2 个)-

2021-04-22 08:25:49 102102542 part-00000-3b9e15c47-5b5a-47e2-9d12--07899ea30c34-c000
2021-04-22 08:26:50 208374517 part-00001-3b9e15c47-5b5a-47e2-9d12--07899ea30c34-c000
..... upto 00049
  • Spark 集群:

    节点数 = 5
    核心数 = 8/节点

因此,我的问题是 Spark 如何计算从 S3 读取输入表所需的任务数?在实际将工作提交给 Spark 之前,是否有任何公式/方程可以让我预先估计自己的任务数量

我使用 Spark sql 2.4

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...