我正在尝试使用spark cassandra连接器从表中获取值。 load()产生IncompatibleClassChangeError。我的开发环境定义如下,Intellij:2019.3.2Scala版本:2.12.10Scala二进制版本:2.12Spark版本:2.4.4Spark cassandra连接器:2.4.2 Exception in thread "main" java.lang.IncompatibleClassChangeError: Inconsistent constant pool data in classfile for class com/datastax/spark/connector/cql/StructDef. Method 'java.lang.Object $anonfun$missingColumns$1$adapted(com.datastax.spark.connector.cql.StructDef, com.datastax.spark.connector.ColumnRef)' at index 182 is CONSTANT_MethodRef and should be CONSTANT_InterfaceMethodRef
哪个库创建了异常?
从Cassandra 3.11切换到Cassandra 3.0为我解决了这个问题。
spark-casandra-connector的官方github项目还提到它仅支持Spark Cassandra连接器2.4.2的Cassandra版本3.0。(https://github.com/datastax/spark-cassandra-connector)。
我的工作设置:
IntelliJ:2019.13.3社区版
Java:openjdk 13.0.2
火花版本:2.4.5
Spark cassandra连接器:2.4.2
Cassandra:3.0.8(托管在Docker容器:https://hub.docker.com/_/cassandra中]