Apache spark 在DSE4.8 spark流媒体中使用复合密钥
任何人都可以使用spark sql中的复合主键在java中共享示例,以将数据保存在Cassandra中。有了CQL,我可以很容易地做到。但我所做的是在一个spark工作中,从Kafka流中传输时间序列数据,并将其作为原始数据保存到cassandra。然后使用dataframe,我可以将此表与相关表连接起来,并使用业务规则对数据进行细化,然后将数据存储在细化的数据表中。我能够解决问题的第一部分。也就是说,使用spark sql使用复合主键将数据保存到Cassandra表中。 基本上,如果我们已经创建了一个具有复合主键的表, 这很容易做到。键是否为复合键没有区别。 我使用cassandra中的CQL创建了一个主键为imei和日期与时间的表。 接下来的代码对我来说非常有效Apache spark 在DSE4.8 spark流媒体中使用复合密钥,apache-spark,datastax-enterprise,datastax-startup,Apache Spark,Datastax Enterprise,Datastax Startup,任何人都可以使用spark sql中的复合主键在java中共享示例,以将数据保存在Cassandra中。有了CQL,我可以很容易地做到。但我所做的是在一个spark工作中,从Kafka流中传输时间序列数据,并将其作为原始数据保存到cassandra。然后使用dataframe,我可以将此表与相关表连接起来,并使用业务规则对数据进行细化,然后将数据存储在细化的数据表中。我能够解决问题的第一部分。也就是说,使用spark sql使用复合主键将数据保存到Cassandra表中。 基本上,如果我们已经创
rowData.foreachRDD(rdd -> {
if(rdd.count()>0){
SQLContext sqlContext = SQLContext.getOrCreate(sc);
Map<String, String> options = new HashMap<String, String>();
options.put("table","data");
options.put("keyspace","newavlview");
org.apache.spark.sql.DataFrame wordsDataFrame = sqlContext.createDataFrame(rdd, XMLRowBean.class);
wordsDataFrame.
write().format("org.apache.spark.sql.cassandra")
.options(options).mode(SaveMode.Append)
.save();
}
rowData.foreachRDD(rdd->{
如果(rdd.count()>0){
SQLContext-SQLContext=SQLContext.getOrCreate(sc);
Map options=newhashmap();
看跌期权(“表格”、“数据”);
看跌期权(“keyspace”、“newavlview”);
org.apache.spark.sql.DataFrame wordsDataFrame=sqlContext.createDataFrame(rdd,XMLRowBean.class);
字框。
write().format(“org.apache.spark.sql.cassandra”)
.options(options).mode(SaveMode.Append)
.save();
}