может ли кто-нибудь поделиться примером в Java с составным первичным ключом в искровом sql для сохранения данных в Cassandra. С CQL я могу сделать это легко. Но то, что я делаю, находится внутри искрового задания, которое передает данные временного ряда из потока Кафки и сохраняет его в cassandra как rawdata. Затем, используя dataframe, я могу присоединиться к этой таблице со связанными таблицами и выполнить уточнение данных с использованием бизнес-правил, а затем сохранить данные в таблице уточненных данных.Использование Composite Key в потоке испускания DSE4.8
-2
A
ответ
0
Я смог решить первую часть моего вопроса. То есть, сохранение данных в таблицу Cassandra с помощью составного первичного ключа с использованием spark-sql. В принципе, если мы уже создали таблицу с составным первичным ключом, это можно сделать легко. Нет никакой разницы, является ли ключ составным или нет. Я создал таблицу с основным ключом imei и дату со временем, используя CQL в 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();
}