如何从现有的 SparkSession 中获取 SparkConf 并从获取的 SparkConf 中创建新的 SparkSession

How to get SparkConf from existing SparkSession and create a new SparkSession from gotten SparkConf

我正在使用 spark-sql-2.4.1vspark-cassandra-connector-2.4.1v 和 Java。为了将数据帧写入 Cassandra 数据库,我创建了一个 spark

SparkConf conf = new SparkConf(true)
                          .set("spark.cassandra.connection.host",cassandraConfig.getHosts())
                          .set( ...).

我正在使用它创建 SparkSession,如下所示

 spark = SparkSession
        .builder()
        .appName(appName)
        .config("spark.master",deploymentMaster)
        .config(conf)
        .getOrCreate();

我正在使用相同的方式从 Cassandra 读取数据 table。

我想动态设置更多 Cassandra 属性,而不是固定 SparkConf,然后创建 SparkSession,我想使用它从 Cassandra table.

读取数据

如何做到这一点?

您可以通过多种方式在现有的 sqlContext 或 sparkContext 中设置 conf。

将配置添加到现有的 sparkContext:

ss.sparkContext.getConf.set("key","value")

将配置添加到现有的 sqlContext:

ss.sqlContext.setConf("key","value")

要获取现有的 sparkConf:

ss.sparkContext.getConf()

也可以使用

在 spark-submit 中设置配置
spark-submit --conf spark.cassandra.connection.host=