微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?