无法初始化 class com.datastax.oss.driver.internal.core.config.typesafe.TypesafeDriverConfig
Could not initialize class com.datastax.oss.driver.internal.core.config.typesafe.TypesafeDriverConfig
我正在使用 Azure Databricks
解决方案连接到 Cassandra
。我的 Cassandra
实例暴露在某个特定端口并可从 cqlsh
访问。
Cassandra
显示版本 returns:
[cqlsh 6.0.0 | Cassandra 3.11.10 | CQL spec 3.4.4 | Native protocol v4]
我创建了在运行时运行的 Cluster
:
7.3 LTS (includes Apache Spark 3.0.1, Scala 2.12)
我安装了以下库:
com.datastax.oss:java-driver-core:4.12.0
和 com.datastax.spark:spark-cassandra-connector_2.12:3.0.1
现在我正在尝试执行简单的查询以使用 Dataframes 加载数据:
spark.read.format("org.apache.spark.sql.cassandra")
.option("spark.cassandra.connection.host", ...)
.option("spark.cassandra.auth.username", ...)
.option("spark.cassandra.auth.password", ...)
.option("table", ...)
.option("keyspace", ...)
.load()
作为回应,我得到:
java.io.IOException: Failed to open native connection to Cassandra at :: Could not initialize class com.datastax.oss.driver.internal.core.config.typesafe.TypesafeDriverConfig
如何正确初始化连接?
您需要使用 spark-cassandra-connector-assembly
(Maven Central) 而不是 spark-cassandra-connector
。原因 - Spark Cassandra Connector 使用比 Databricks 运行时更新版本的 Typesafe Config 库。汇编版本包括所有必要的库作为阴影版本。而且你不需要安装 java-driver-core
- 它会自动作为依赖项被拉出来。
您可以在下面找到更多解释blog post
我正在使用 Azure Databricks
解决方案连接到 Cassandra
。我的 Cassandra
实例暴露在某个特定端口并可从 cqlsh
访问。
Cassandra
显示版本 returns:
[cqlsh 6.0.0 | Cassandra 3.11.10 | CQL spec 3.4.4 | Native protocol v4]
我创建了在运行时运行的 Cluster
:
7.3 LTS (includes Apache Spark 3.0.1, Scala 2.12)
我安装了以下库:
com.datastax.oss:java-driver-core:4.12.0
和 com.datastax.spark:spark-cassandra-connector_2.12:3.0.1
现在我正在尝试执行简单的查询以使用 Dataframes 加载数据:
spark.read.format("org.apache.spark.sql.cassandra")
.option("spark.cassandra.connection.host", ...)
.option("spark.cassandra.auth.username", ...)
.option("spark.cassandra.auth.password", ...)
.option("table", ...)
.option("keyspace", ...)
.load()
作为回应,我得到:
java.io.IOException: Failed to open native connection to Cassandra at :: Could not initialize class com.datastax.oss.driver.internal.core.config.typesafe.TypesafeDriverConfig
如何正确初始化连接?
您需要使用 spark-cassandra-connector-assembly
(Maven Central) 而不是 spark-cassandra-connector
。原因 - Spark Cassandra Connector 使用比 Databricks 运行时更新版本的 Typesafe Config 库。汇编版本包括所有必要的库作为阴影版本。而且你不需要安装 java-driver-core
- 它会自动作为依赖项被拉出来。
您可以在下面找到更多解释blog post