【问题标题】:Error in accessing cassandra from spark in java: Unable to import CassandraJavaUtil在 java 中从 spark 访问 cassandra 时出错:无法导入 CassandraJavaUtil
【发布时间】:2015-03-17 04:29:21
【问题描述】:

我正在使用以下博客配置从 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 类依赖项,并且我的 Eclipse 显示错误“无法解析导入”。

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

请帮助我解决此错误。

非常感谢。

【问题讨论】:

标签: cassandra apache-spark datastax


【解决方案1】:

我还按照您链接的第一个文档中的示例进行了操作。您会注意到,在“先决条件”部分中,第 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>
    <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 连接器库。这对我有用:

cd workspace/sparkTest2
mvn package

【讨论】:

  • 还是不行,有什么指点吗? CassandraJavaUtil 类型中的方法 javaFunctions(SparkContext) 不适用于参数 (JavaRDD, Class)
  • 已添加 com.datastax.sparkspark-cassandra-connector_2.101.2.0com.datastax.sparkspark-cassandra-connector-java_2 .101.2.0 仍然无法使用任何指针
  • @mithra 继续提出这个问题。这样你就会吸引更多的人来看它。
【解决方案2】:

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

从 1.1.x 版本开始,Java API 带有几个有用的工厂方法,可用于创建两种主要类型的行读取器工厂:基于类型转换器和基于列映射器。

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

【讨论】:

    猜你喜欢
    • 2016-08-20
    • 1970-01-01
    • 2014-02-15
    • 2015-07-10
    • 1970-01-01
    • 2015-08-16
    • 2022-01-05
    • 2020-12-18
    • 2015-06-08
    相关资源
    最近更新 更多