我正在spark驱动程序中创建一个jdbc对象,并在executor中使用它来访问数据库。所以我担心的是,是同一个连接对象还是执行器会得到连接对象的副本,这样每个分区就会有单独的连接?
- 在Scala中,并不是说你说pyspark、Java还是Scala,
- 您可以按照下面的链接为
ConnectionPool
创建Object
;- 这将为每个
Executor
实例化,并由包括该Executor
的Cores
共享。即而不是作为所有foreachPartition的Singleton。- 您的担忧/问题在前一个项目符号中得到了解决,即他们自己的关系
- 这将为每个
- 您可以按照下面的链接为
请参阅https://medium.com/@ravshankar.nair/在-apache-parks-foreachpartition-4add46dc8ae2中实现连接池。这是一个很好的参考从媒体网站。