2016-06-13 10 views
-2

任何人都可以在java中使用複合主鍵在spark sql中共享示例以將數據保存在Cassandra中。有了CQL,我可以輕鬆完成。但是我正在做的是在一個Spark工作內部,它將來自Kafka流的時間序列數據流並將其作爲raw數據保存到cassandra。然後使用數據框,我可以將此表與相關表連接起來,並使用業務規則執行數據細化,然後將數據存儲在精細數據表中。在DSE4.8火花流中使用複合關鍵字

回答

0

我能解決我的問題的第一部分。也就是說,使用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(); 


      }