Можно ли передать имя кластера 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")

0 ответов

Другие вопросы по тегам