Я провел последнюю неделю, пытаясь понять, как использовать sparlyr, чтобы получить искру, чтобы подключиться к cassandra в нашем локальном кластере, и я ударил стену - любая помощь будем очень благодарны. Я единственный, кто пытается использовать R/Rstudio для подключения (все остальные используют Java на NetBeans и Maven), и я не уверен, что мне нужно сделать, чтобы сделать эту работу.Невозможно подключить Spark к Cassandra DB в RStudio
стек я использую: Ubuntu 16,04 (в VM) sparklyr: 0.5.3 Spark: 2.0.0 Scala: 2,11 Кассандры: 3.7
соответствующие настройки config.yml файлов :
# cassandra settings
spark.cassandra.connection.host: <cluster_address>
spark.cassandra.auth.username: <user_name>
spark.cassandra.auth.password: <password>
sparklyr.defaultPackages:
- com.databricks:spark-csv_2.11:1.3.0
- com.datastax.spark:spark-cassandra-connector_2.11:2.0.0-M1
- com.datastax.cassandra:cassandra-driver-core:3.0.2
Sys.setnev установка набор для локальной установки Java и искры, конфигурация набора использовать файл YML. Подключение Спарк инициируют:
sc <- spark_connect(master = "spark://<cluster_address>", config = spark_config(file = "config.yml"))
Спарк сессии инициируют:
sparkSession <- sparklyr::invoke_static(sc, org.apache.spark.sql.SparkSession", "builder") %>%
sparklyr::invoke("config", "spark.cassandra.connection.host", "<cluster_address>") %>%
sparklyr::invoke("getOrCreate")
Это все кажется штраф до здесь (соединение СБН и sparkSession), но теперь пытается получить доступ к таблице Cassandra (table_1 в в keyspace_1), который я знаю, существует:
cass_df <- invoke(sparkSession, "read") %>%
invoke("format", "org.apache.spark.sql.cassandra") %>%
invoke("option", "keyspace", "keyspace_1") %>%
invoke("option", "table", "table_1") %>%
invoke("load")
подбрасывает следующее сообщение об ошибке:
Error: java.lang.IllegalArgumentException: Cannot build a cluster without contact points
at com.datastax.driver.core.Cluster.checkNotEmpty(Cluster.java:123)
at com.datastax.driver.core.Cluster.(Cluster.java:116)
at com.datastax.driver.core.Cluster.buildFrom(Cluster.java:182)
at com.datastax.driver.core.Cluster$Builder.build(Cluster.java:1274)
at com.datastax.spark.connector.cql.DefaultConnectionFactory$.createCluster(CassandraConnectionFactory.scala:92) . . .
Отсутствует 'spark.cassandra.connection.host'? – user7337271
да! это был всего лишь намек, который мне нужен. при запуске моей sparkSession я использовал SPARK (с номером порта), а не только адрес кластера (где была папка cassandra). оно работает! спасибо @ user7337271. –
renegademonkey