-2

任何人都可以使用 spark sql 中的复合主键在 java 中共享示例以将数据保存在 Cassandra 中。使用 CQL,我可以轻松地做到这一点。但我正在做的是一个火花工作,它从 Kafka 流中传输时间序列数据并将其作为原始数据保存到 cassandra。然后使用数据框,我可以将此表与相关表连接起来,并使用业务规则对数据进行精炼,然后将数据存储在精炼数据表中。

4

1 回答 1

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();


             }
于 2016-06-14T03:30:57.723 回答