Мені потрібно змінити порядок мого ключа "Примарей"
PRIMARY KEY (a, b) --> PRIMARY KEY (b,a)
Але в кассандрі я не можу просто змінити ПЕРШИЙ КЛЮЧ, як це: змінити складений первинний ключ у cassandra CQL 3.0
Отже, я просто хочу перемістити дані зі старої таблиці до нової таблиці, яку я створив. Оскільки кількість рядків величезна, мені потрібно використовувати Іскру.
Дані "в":
Я отримую такі дані зі старої таблиці:
JavaRDD<CassandraRow> initialRDD;
Питання:
Чи можна безпосередньо зберегти його до нової таблиці, оскільки сам рядок не змінився?
Що мені вдалося зробити:
Я міг би це зробити, але здаватись абсурдним на карті від CassandraRow до CassandraRow
javaFunctions(initialRDD).writerBuilder("targetKeyspace", "targetTable", mapToRow(CassandraRow.class)).saveToCassandra();
таким чином, це підказує мені помилку:
Some primary key columns are missing in RDD or have not been selected: ...
Відповіді:
1 для відповіді № 1Я дуже не використовую іскру, але, думаю, вам потрібно створити другу таблицю з новим порядком ключів, а потім завантажити першу таблицю в RDD за допомогою роз'єму іскри:
val rdd = sc.cassandraTable ("простір клавіш", "table1")
Потім збережіть його у другій таблиці з новим порядком ключів:
rdd.saveToCassandra ("простір клавіш", "table2", SomeColumns ("b", "a"))