2015-06-26 1 views
1

Я пытаюсь запросить cassandra из искры в java. Ниже приведен код для извлечения данных, но метод mapToRow принимает два параметра. сначала класс, а второй - ColumnMapper. Как получить экземпляр класса ColumnMapper в java. Googling рекомендует создавать объект производного класса JavaBeanColumnMapper, но не нашел, как должен быть создан класс JavaBeanColumnMapper.проблема с искровым коннектором cassandra в java

List<String> dates = Arrays.asList("2015-02-02","2015-02-08"); 
    JavaRDD<DailyTaxlot> openTaxlots = CassandraJavaUtil.javaFunctions(sc). 
      cassandraTable("wedbush_praveen_testing", "cf_taxlots",CassandraJavaUtil.mapToRow(DailyTaxlot.class),). 
        where("openclosetag=?","Open").where("rundate IN",dates); 

Любое руководство будет оценено по достоинству.

ответ

1

Посмотрите на пример с искровым Кассандры разъем здесь:

JavaApiDemo.java

В примере вы можете увидеть, как определен класс Person боб. API будет инстанцировать его по мере необходимости для каждой строки.

JavaRDD<Person> rdd = CassandraJavaUtil.javaFunctions(sc).cassandraTable("test", "people", mapRowTo(Person.class)); 

// Bean definition 
public static class Person implements Serializable { 
    private Integer id; 
    private String name; 
    private Date birthDate; 

    public static Person newInstance(Integer id, String name, Date birthDate) { 
     Person person = new Person(); 
     person.setId(id); 
     person.setName(name); 
     person.setBirthDate(birthDate); 
     return person; 
    } 

    public Integer getId() { 
     return id; 
    } 

    public void setId(Integer id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public Date getBirthDate() { 
     return birthDate; 
    } 

    public void setBirthDate(Date birthDate) { 
     this.birthDate = birthDate; 
    } 
}