Я использую коннектор DataStax Spark для заполнения кластера Cassandra и обработки данных в различных заданиях (из-за к некоторым неподдерживаемым операциям Spark для потоковой обработки, таким как двойное агрегирование). Поэтому я хочу хранить данные в одной таблице для разных заданий. Предполагая, что первое задание потоковой передачи вставляет строку в эту таблицу (с помощью модуля записи foreach, поскольку коннектор пока не поддерживает потоковую запись).
INSERT INTO keyspace_name.table_name (id, col1, col2) VALUES ("test", 1, null);
Что, если я добавлю (вставлю) набор данных с пустым столбцом в нем, где уже было ненулевое значение для этой строки в Cassandra?
// One row of the dataset = "test", null, 2
dataset.write
.format("org.apache.spark.sql.cassandra")
.option("keyspace", keyspace)
.option("table", table)
.mode(SaveMode.Append)
.save()
Если я правильно понимаю документы, предыдущие не -null значение будет перезаписано новым нулевым значением? Если да, есть ли способ сохранить существующие ненулевые значения? Или мне нужно хранить данные в отдельных таблицах для каждого задания?