2015-01-19 2 views
7

Я использую следующий блог в настройке для доступа к Cassandra из искры apache.Ошибка при доступе к cassandra из искры в java: невозможно импортировать CassandraJavaUtil

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

Однако, я не могу импортировать зависимость класса CassandraJavaUtil и мое затмение отображается ошибка «Импорт не может быть решена.»

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

Пожалуйста, помогите мне в разрешении этой ошибки.

Большое спасибо.

+0

Смотрите это: http://stackoverflow.com/questions/27323426/spark-saving-javardd-to-cassandra –

ответ

8

Я также следовал примеру в первом документе, который вы связали. Вы заметите, что в разделе «Предварительные требования» шаг № 2 требует, чтобы вы создали пример в качестве проекта Maven. В шаге 3 перечислены четыре зависимости, которые необходимо добавить в проект. Два из этих зависимостей являются специфическими для искрового Connector:

  • com.datastax.spark: искровым Cassandra-connector_2.10: 1.0.0-RC4
  • com.datastax.spark: искровым Cassandra-разъем -java_2.10: 1.0.0-rc4

в основном, раздел "зависимости" от 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 Connector. Это работает для меня:

cd workspace/sparkTest2 
mvn package 
+0

все еще не работает, никаких указателей? Метод javaFunctions (SparkContext) в типе CassandraJavaUtil не применим для аргументов (JavaRDD , Class ) – mithra

+0

Добавили \t com.datastax.spark \t искровым Кассандры connector_2.10 \t 1.2.0 \t com.datastax.spark \t искровой Cassandra-разъем-java_2.10 \t 1.2.0 все еще не работает ни один указатель, пожалуйста, – mithra

+0

@mithra. Задайте этот вопрос как отдельный вопрос. Таким образом, вы привлечете больше людей, чтобы посмотреть на это. – Aaron

3

Класс CassandraJavaUtil теперь перемещен в japi пакет в com.datastax.spark.connector

Итак, попробуйте использовать: -

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

Примечание: В соответствии с этим doc:

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

Начиная с версии 1.1.x, API Java поставляется с несколькими полезными заводскими методами, которые могут быть использованы для создания фабрик считывателей строк двух основных типов: на основе типа конвертера и на основе столбцов.

Также обратите внимание, что синтаксис использования CassandraJavaUtil.javaFunctions() также изменился. Внимательно прочитайте приведенную выше ссылку.

Смежные вопросы