2015-05-22 2 views
2

Я пытаюсь настроить и запустить свой первый запрос Spark после official example. На наших локальных компьютерах мы уже установили последнюю версию пакета Datastax Enterprise (на данный момент это 4,7).Начало работы с Spark (Datastax Enterprise)

Я делаю все в точности по документации, я приложил последнюю версию dse.jar к моему проекту, но ошибки приходит прямо с самого начала:

Вот отрывок из их примера

SparkConf conf = DseSparkConfHelper.enrichSparkConf(new SparkConf()) 
      .setAppName("My application"); 
DseSparkContext sc = new DseSparkContext(conf); 

Теперь кажется, что класс DseSparkContext имеет только пустой конструктор по умолчанию.

Сразу после этих строк приходит следующий

JavaRDD<String> cassandraRdd = CassandraJavaUtil.javaFunctions(sc) 
    .cassandraTable("my_keyspace", "my_table", .mapColumnTo(String.class)) 
    .select("my_column"); 

И здесь возникает главная проблема, CassandraJavaUtil.javaFunctions(sc) метод принимает только SparkContext на входе и не DseSparkContext (SparkContext и DseSparkContext совершенно разные классы и один не наследуется от другого).

Я предполагаю, что документация не в курсе с realese версии, и если кто-нибудь встречал эту проблему, прежде чем, пожалуйста, поделитесь со мной своим опытом,

Спасибо!

ответ

1

Похоже на ошибку в документах. Это должно быть

DseSparkContext.apply(conf) 

Поскольку DseSparkContext является объектом Scala, который использует функцию Apply для создания новых SparkContexts. В Scala вы можете просто написать DseSparkContext(conf), но в Java вы должны фактически вызвать метод. Я знаю, что у вас нет доступа к этому коду, поэтому я буду уверен, что это будет исправлено в документации и посмотреть, можем ли мы улучшить API-документы API.

+0

FYI, это все еще ошибка в документации. – Ztyx

+0

Это больше не требуется @Zytx я обновлю это позже (для dse 4.7+) – RussS

+0

На самом деле я не уверен, позвольте мне дважды проверить с помощью api – RussS

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