我下载了
spark-cassandra-connector_3.12-3.2.0.jar
并放入 /apache-spark/3.2.1/libexec/jars
文件夹中。
在conf中调用这个jar,如下所示:
conf=SparkConf().setAppName("d").setMasetMaster("local")
.set("spark.driver.extraClassPath",
"jarPath/spark-cassandra-connector_3.12-3.2.0.jar")
查询 caasandra 但出现以下错误,请提出建议
**Py4j.protocol.PyJJavaError: An error occurred while calling o114.load.
:Java.lang.NoClassDefFoundError: com/datastax/spark/connector/util/logging**
问题是这个 jar 不包含所有必要的依赖项。 第二个问题是您使用了不正确的配置属性。
要修复它,您有两种选择:
您可以使用
spark.jars.packages
配置属性(或命令行中的 --packages
)以及值 com.datastax.spark:spark-cassandra-connector_2.12:3.2.0
,如 docs 中所述。 这将获取 jar + 必要的依赖项
您可以下载包含所有依赖项的 spark-cassandra-connector- assembly jar,并将其与
spark.jars
配置属性(或命令行中的 --jars
)一起使用。
附注请参阅有关 配置属性的 Spark 文档。
spark = SparkSession.builder
.config(“spark.jars.packages”,“com.datastax.spark:spark-cassandra-connector_2.12:3.0.0”)
您应该添加配置名称为spark.jars.packages和com.datastax.spark的连接器: