|
|
霸气的骆驼 · 连接MySql报错Unknown ...· 1 月前 · |
|
|
近视的充电器 · 下載 - JDBC Driver for ...· 1 月前 · |
|
|
发呆的洋葱 · 使用JDBC连接与开发PolarDB ...· 2 周前 · |
|
|
睿智的甜瓜 · 大学生月生活费20年涨10倍 贫富差距扩大-新华网· 4 月前 · |
|
|
直爽的小蝌蚪 · 杜兰特都带不动?美国男篮不敌尼日利亚,9年前 ...· 10 月前 · |
|
|
豪爽的烤面包 · 售11.88-15.48万 ...· 2 年前 · |
|
|
光明磊落的高山 · 长征五号遥二火箭发射失利;深圳共享单车停用令 ...· 2 年前 · |
|
|
体贴的甘蔗 · 《东北恋哥2对你爱不完》大年初二上线爱奇艺云 ...· 2 年前 · |
我正在一个Scala + Spark项目中工作,在该项目中,我们将数据从文件加载到PostgreSQL中。它在独立模式下使用jdbc.write在本地运行良好,测试数据很小。
但是由于生产数据是巨大的,我想使用一个集群,每个执行者拥有多个工作人员和一个逻辑处理器核心。
考虑到这一点,我如何在集群中的所有可用核之间划分数据?
谢谢!
PS:使用Scala2.13.9和Spark3.3.0
如果您正在使用动态分配,并且您的集群被并发作业使用,那么可能很难得到与您的作业可能使用的核数目完全相等的分区数,因为您不会预先知道这个数目,并且无法动态计算它。
您可以尝试找出一些任意的数字,并将numPartitions jdbc参数设置为要在写时使用的分区数。使用此参数,Spark将在写入之前重新划分此数据集,您将得到写入上的任务数量等于numPartitions。记住,用并行=1 jdbc连接编写的每个任务都要注意,您可能会溢出您的PostreSQL。
numPartitions (none)表读取和 写入 中可用于并行处理的最大分区数。这也决定了 并发JDBC连接 的最大数量。如果要写入的分区数超过此限制,则在编写之前调用numPartitions将其减少到此限制。 read/write
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券
|
|
睿智的甜瓜 · 大学生月生活费20年涨10倍 贫富差距扩大-新华网 4 月前 |