-2
任何人都可以在java中使用複合主鍵在spark sql中共享示例以將數據保存在Cassandra中。有了CQL,我可以輕鬆完成。但是我正在做的是在一個Spark工作內部,它將來自Kafka流的時間序列數據流並將其作爲raw數據保存到cassandra。然後使用數據框,我可以將此表與相關表連接起來,並使用業務規則執行數據細化,然後將數據存儲在精細數據表中。在DSE4.8火花流中使用複合關鍵字
任何人都可以在java中使用複合主鍵在spark sql中共享示例以將數據保存在Cassandra中。有了CQL,我可以輕鬆完成。但是我正在做的是在一個Spark工作內部,它將來自Kafka流的時間序列數據流並將其作爲raw數據保存到cassandra。然後使用數據框,我可以將此表與相關表連接起來,並使用業務規則執行數據細化,然後將數據存儲在精細數據表中。在DSE4.8火花流中使用複合關鍵字
我能解決我的問題的第一部分。也就是說,使用spark-sql將數據保存到具有複合主鍵的Cassandra表中。 基本上,如果我們已經創建了一個複合主鍵表,它可以很容易地完成。密鑰是否合成沒有區別。 我用Cassandra中的CQL創建了一個包含主鍵imei和日期的表格。 然後下面的代碼爲我完美工作。
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();
}