从 java 中的 spark 访问 cassandra 时出错:无法导入 CassandraJavaUtil

Error in accessing cassandra from spark in java: Unable to import CassandraJavaUtil

我正在使用以下博客配置从 apache spark 访问 Cassandra。

"http://www.datastax.com/dev/blog/accessing-cassandra-from-spark-in-java" “https://gist.github.com/jacek-lewandowski/278bfc936ca990bee35a#file-javademo-java-L177

但是,我无法导入 CassandraJavaUtil class 依赖项,我的 eclipse 显示错误 "The Import cannot be resolved."

import static com.datastax.spark.connector.CassandraJavaUtil.*;

请帮我解决这个错误。

非常感谢。

我也遵循了您链接的第一个文档中的示例。您会注意到在 "Prerequisites" 部分中,第 2 步要求您将示例创建为 Maven 项目。步骤#3 列出了您需要添加到项目中的四个依赖项。其中两个依赖项特定于 Spark 连接器:

  • com.datastax.spark:spark-cassandra-connector_2.10:1.0.0-rc4
  • com.datastax.spark:spark-cassandra-connector-java_2.10:1.0.0-rc4

基本上,我的 Spark 项目 pom.xml 的 "dependencies" 部分如下所示:

  <dependencies>
    <dependency>
        <groupId>com.datastax.spark</groupId>
        <artifactId>spark-cassandra-connector_2.10</artifactId>
        <version>1.1.0-alpha2</version>
    </dependency>
    <dependency>
        <groupId>com.datastax.spark</groupId>
        <artifactId>spark-cassandra-connector-java_2.10</artifactId>
        <version>1.1.0-alpha2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>1.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming_2.10</artifactId>
        <version>1.1.0</version>
    </dependency>
  </dependencies>

仔细检查您的 pom.xml 是否具有这些依赖项,然后调用 Maven 将 Spark Connector 库下载到本地。这对我有用:

cd workspace/sparkTest2
mvn package

class CassandraJavaUtil 现已移至 com.datastax.spark.connector

中的 japi

所以,尝试使用:-

import static com.datastax.spark.connector.japi.CassandraJavaUtil.*;

注: 根据此文档:

https://github.com/datastax/spark-cassandra-connector/blob/master/doc/7_java_api.md

Since version 1.1.x, Java API comes with several useful factory methods which can be used to create factories of row readers of the two major kinds: type converter based and column mapper based.

另请注意,使用 CassandraJavaUtil.javaFunctions() 的语法也已更改。仔细阅读上述参考资料。