当使用sparkJDBCDataset
JDBC 连接加载表时,我一直遇到 spark 找不到我的驱动程序的错误。驱动程序肯定存在于机器上,并且它的目录spark.yml
在config/base
.
我也按照说明添加了def init_spark_session
方法到src/project_name/run.py
. 不过,我很怀疑,这里定义的 sparksession 并没有被sparkJDBCDataset
班级接受。当您查看用于创建 sparksession 并在其中加载数据集的源代码时sparkJDBCDataset
,看起来就像定义了一个没有配置的 vanilla sparksession 来加载和保存数据。内部定义的配置spark.yml
不用于创建此 sparksession。以下是源代码的摘录
@staticmethod
def _get_spark():
return SparkSession.builder.getOrCreate()
def _load(self) -> DataFrame:
return self._get_spark().read.jdbc(self._url, self._table, **self._load_args)
当我从 Kedro 外部的 jdbc 源加载数据时,使用定义的 SparkSession spark.jars
,数据按预期加载。
在构建读取数据的 sparksession 时,有没有办法指定spark.jars
其他 sparkConf?