Можно ли передать имя кластера Cassandra (определено в конфиге) для сохранения () с помощью коннектора свечи Cassandra?
Таким образом, чтение отлично работает в соответствии с документацией:
val cql = new org.apache.spark.sql.cassandra.CassandraSQLContext(sc)
cql.setConf("cluster-src/spark.cassandra.connection.host", "1.1.1.1")
cql.setConf("cluster-dst/spark.cassandra.connection.host", "2.2.2.2")
...
var df = cql.read.format("org.apache.spark.sql.cassandra")
.option("table", "my_table")
.option("keyspace", "my_keyspace")
.option("cluster", "cluster-src")
.load()
Но не ясно, как передать имя целевого кластера аналогу сохранения. Это, очевидно, не работает, он просто пытается подключиться к локальному узлу искры:
df.write
.format("org.apache.spark.sql.cassandra")
.option("table", "my_table")
.option("keyspace", "my_keyspace")
.option("cluster", "cluster-dst")
.save()
Обновить:
Нашел обходной путь, но это отчасти уродливо. Так что вместо:
.option("cluster", "cluster-dst")
использовать:
.option("spark_cassandra_connection_host", cql.getConf("cluster-dst/spark.cassandra.connection.host")