Ниже приведен пример определения таблицы Кассандры, которую я имею; CREATE TABLE IF NOT EXISTS test_table (
id int,
data_date date,
score double,
PRIMARY KEY (id)
);
Я создал класс TestTable, который расширяет Serializable
, а тип данных члена dataDate
был определен как com.datastax.driver.core.LocalDate
.
Однако, когда я пытаюсь записать эти данные с использованием CassandraIO.write, я сталкиваюсь с ошибкой Caused by: java.io.NotSerializableException: com.datastax.driver.core.LocalDate
Я понимаю эту ошибку, потому что com.datastax.driver.core.LocalDate не реализует Serializable
interface
Поэтому я попытался изменить тип данных элемента dataDate
на java.time.LocalDate
Однако это изменение приводит к ошибке
java.lang.RuntimeException:org.apache.beam.sdk.util.UserCodeException:java.util.concurrent.ExecutionException:
com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [date <-> java.time.LocalDate]
Итак, вопрос в том; если у меня есть столбец с датой типа данных на Кассандре, как мне вставить его, используя Apache Beam's CassandraIO