简体   繁体   English

java中的火花卡桑德拉连接器的麻烦

[英]trouble with spark cassandra connector in java

I am trying to query cassandra from spark in java. 我试图从java中的spark查询cassandra。 Below is the code to fetch data but mapToRow method takes two parameter. 以下是获取数据的代码,但mapToRow方法采用两个参数。 first is class and second is ColumnMapper. 第一个是类,第二个是ColumnMapper。 How to get instance of the ColumnMapper class in java. 如何在Java中获取ColumnMapper类的实例。 Googling it recommends creating object of derived class JavaBeanColumnMapper but didn't find how JavaBeanColumnMapper class should be instantiated. 谷歌搜索建议创建派生类JavaBeanColumnMapper的对象,但没有找到应如何实例化JavaBeanColumnMapper类。

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);

Any lead will be appreciated. 任何线索将不胜感激。

Have a look at the example from the spark-cassandra-connector here: 在这里查看spark-cassandra-connector中的示例:

JavaApiDemo.java JavaApiDemo.java

In the example you can see how the Person bean class is defined. 在示例中,您可以看到如何定义Person bean类。 The API will instantiate it as needed for each row. 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;
    }  
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM