与 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 绑定
elasticsearch 如何与cassandra 数据库结合