Искра пишет Кассандре с различным TTLJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Искра пишет Кассандре с различным TTL

Сообщение Гость »


В Java Spark у меня есть фрейм данных со столбцом «bucket_timestamp», который представляет время сегмента, которому принадлежит строка.

Я хочу записать фрейм данных в базу данных Cassandra. Данные должны быть записаны в БД с TTL. TTL должен зависеть от временной метки сегмента, где TTL каждой строки должен рассчитываться как ROW_TTL = CONST_TTL - (CurrentTime - Bucket_timestamp), где CONST_TTL — это постоянный TTL, который я настроено.

В настоящее время я пишу в Cassandra с помощью искры, используя постоянный TTL, со следующим кодом:

df.write().format("org.apache.spark.sql.cassandra") .options(new HashMap() { { put("пространство_ключей", "имя_пространства_ключей"); put("таблица, "имя_таблицы"); put("spark.cassandra.output.ttl, Long.toString(CONST_TTL)); // Должно зависеть от столбца Bucket_timestamp } }).mode(SaveMode.Overwrite).save(); Один из возможных способов, о котором я подумал, - для каждой возможной Bucket_timestamp - фильтровать данные по временной метке, вычислять TTL и записывать отфильтрованные данные в Cassandra. но это кажется очень неэффективным и не лучшим способом. Есть ли в Java Spark способ предоставить столбец Spark в качестве параметра TTL, чтобы TTL был разным для каждой строки?

Решение должно работать с Java и набором данных< Row>: я встречал некоторые решения для выполнения этого с помощью RDD в Scala, но не нашел решения для использования Java и dataframe.

Спасибо!
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»