Python 3.x 如何在spark上下文中指定多个jdbc驱动程序?

Python 3.x 如何在spark上下文中指定多个jdbc驱动程序?,python-3.x,apache-spark,pyspark,Python 3.x,Apache Spark,Pyspark,我有一个从mysql和postgresql读取数据并进行数据处理的应用程序 我有以下初始化spark的函数: def init_spark(): global sc, sqlContext, sqlCtx, sql, spark spark = SparkSession.builder.config( 'spark.driver.extraClassPath', 'path/to/mysql-connector-java.jar' ).getOrCre

我有一个从mysql和postgresql读取数据并进行数据处理的应用程序

我有以下初始化spark的函数:

def init_spark():
    global sc, sqlContext, sqlCtx, sql, spark
    spark = SparkSession.builder.config(
         'spark.driver.extraClassPath', 'path/to/mysql-connector-java.jar'
     ).getOrCreate()

    sc = spark.sparkContext
    sql = spark.sql
    atexit.register(lambda: sc.stop())

    # for compatibility
    sqlContext = spark._wrapped
    sqlCtx = sqlContext

    print("""Welcome to
          ____              __
         / __/__  ___ _____/ /__
        _\ \/ _ \/ _ `/ __/  '_/
       /__ / .__/\_,_/_/ /_/\_\   version %s
          /_/
    """ % sc.version)
    print("Using Python version %s (%s, %s)" % (
        platform.python_version(),
        platform.python_build()[0],
        platform.python_build()[1]))
    print("SparkSession available as 'spark'.")
我有一个运行应用程序的主文件,如下所示:

init_spark()
process_mysql_data()
process_postgresql_data()

在这种情况下,进程\u postgresql\u data()将失败,因为我已经用mysql jar初始化了spark。然而,当我用postgresql jar替换它时,它确实可以工作,但我必须注释掉process\u mysql\u data()函数。我正在寻找一种更有效的方法来实现这一点,使其自动化。

只需将所有jar放在同一个字符串中,用
分隔,如

spark=SparkSession.builder.config(
“spark.driver.extraClassPath”,
'path/to/mysql连接器java.jar:path/to/postgres连接器java.jar'
).getOrCreate()

您还可以在postgres jar中添加另一个.config()参数:
spark=SparkSession.builder\.config('spark.driver.extraClassPath','path/to/mysql connector java.jar)\.config('spark.driver.extraClassPath','path/to/postgres connector java.jar)\.getOrCreate()
它不起作用,因为它验证了类外路径。