与 Cassandra SaveToCassandra 一起火花

Posted

技术标签:

【中文标题】与 Cassandra SaveToCassandra 一起火花【英文标题】:Spark with Cassandra SaveToCassandra 【发布时间】:2014-12-13 12:08:53 【问题描述】:

我正在使用带有 spark 的 Cassandra,我有一个 JavaRDD<Srring> 包含 6 列,由 , 分隔,如下所示:

header: canal,action,time,tiemend,client

我创建了一个包含 6 列的表 Mytable

CREATE TABLE IF NOT EXISTS ref_event_by_user_session (
    canal       TEXT,
    action      TEXT,
    time        timestamp,
    timeend     timestamp,
    Client      INT,
    PRIMARY KEY(canal, action, time, timeend)
);

现在我想使用 javaFunctions().saveToCassandra 将我的 JavaRDD 保存在我的 Cassandra 表中, 但我不知道如何使用它。你能告诉我怎么做吗?

【问题讨论】:

这是文档:github.com/datastax/spark-cassandra-connector/blob/master/doc/… 为什么人们会否决这个问题?我看到了这个问题的价值 【参考方案1】:

我找到了解决方案。 如果它可以帮助某人:) 我只是用canal String, action String, time Date, timeend Date, Client String,创建了一个java类table2

然后:

JavaRDD<Table2> table2 = session_7.map(new Function<Tuple2<KeyTable2, ValueTable2>, Table2>() 
       @Override
       public Table2 call(Tuple2<KeyTable2, ValueTable2> keyTable2ValueTable2Tuple2) throws Exception 
           SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
           Date startdate = formatter.parse(keyTable2ValueTable2Tuple2._1.time.replace("+","."));
           Date endtdate = formatter.parse(keyTable2ValueTable2Tuple2._1.endtime.replace("+","."));
           Table2 t = new Table2(keyTable2ValueTable2Tuple2._2.canal,keyTable2ValueTable2Tuple2._2.motif,startdate,endtdate,keyTable2ValueTable2Tuple2._1.client);
           return t;
       
   );

    javaFunctions(table2).writerBuilder("Schema", "Table", mapToRow(Table2.class)).saveToCassandra();

注意:即使不同变量是公共的,您也必须在类中添加 getter。

【讨论】:

以上是关于与 Cassandra SaveToCassandra 一起火花的主要内容,如果未能解决你的问题,请参考以下文章

Datsac Cassandra 与 Apache Cassandra 绑定

Cassandra与HugeGraph的安装配置

elasticsearch 如何与cassandra 数据库结合

Cassandra 索引与物化视图

如何检查 cassandra 与 pentaho 数据集成器的连接

Solr与Cassandra二级缓存实践