sparlyrを使用してローカルクラスタ上のcassandraに接続する方法を理解しようとしています。大変感謝します。私はR/Rstudioを使ってこの接続を作成しようとしている唯一の人です(NetBeansとMavenでJavaを使用する人は誰もがいません)。RStudioのCassandra DBにSparkを接続できません
私が使用しているスタックは、次のとおりです。(VMで) のUbuntu 16.04 sparklyr:0.5.3 スパーク:2.0.0 スカラ: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
Javaおよびスパークのローカルインストール用に設定されたSys.setnev設定で、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")
それはすべての中のtable_1(ここまでの罰金だ、(SC接続とsparkSession)が、今カサンドラテーブルにアクセスしようとします)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を起動するとき、私はクラスタアドレス(cassandraがあった場所)だけでなく、SPARK(ポート番号付き)を使用していました。できます!ありがとう@ user7337271。 –
renegademonkey