У меня есть следующие Cassandra DM:Спарк Cassandra Connector ведет себя отличается от CQL оболочки - Вставить вопрос
CREATE TABLE table (
id uuid,
timestamp timestamp STATIC,
value1 text STATIC,
value2 int,
value3 text,
data map <text,text>,
PRIMARY KEY (id, value2)
);
До сих пор так хорошо. Теперь я должен типов форматов я хочу, чтобы вставить первую:
INSERT INTO table (id, timestamp, value1)
VALUES (<uuid>,<timestamp>,<some-string>);
и
INSERT INTO table (id, value2, value3, data)
VALUES (<some-id>,<some-int>,<some-string>, <some-simple-json-map>)
Оба заявления CQL работают отлично. Теперь я разрабатываю приложение для создания искрообразования, получающее данные и форматирование его в dataframes, стилизованные как мои операторы CQL. Я получаю для каждого набора заявления 1 несколько комплектов заявления 2.
Теперь у меня есть вопрос, когда я сохранить dataframe как первое заявление искра CQL бросает исключение Кассандры:
java.lang.IllegalArgumentException:
Some primary key columns are missing in RDD or have not been selected: value2
at com.datastax.spark.connector.writer.TableWriter$.checkMissingPrimaryKeyColumns(TableWriter.scala:190)
at com.datastax.spark.connector.writer.TableWriter$.checkColumns(TableWriter.scala:257)
at com.datastax.spark.connector.writer.TableWriter$.apply(TableWriter.scala:275)
at com.datastax.spark.connector.RDDFunctions.saveToCassandra(RDDFunctions.scala:36)
...
Здесь схема мой dataframe:
root
|-- id: string (nullable = true)
|-- timestamp: long (nullable = true)
|-- value1: string (nullable = true)
мои сохранить Постулаты:
data.select("id", "timeStamp", "value1")
.write.format("org.apache.spark.sql.cassandra")
.mode(SaveMode.Append)
.options(Map("keyspace" -> "some_keyspace","table" -> "table"))
.save()
Когда я добавить в lue 2 в мой dataframe, оператор работает отлично.
root
|-- id: string (nullable = true)
|-- timestamp: long (nullable = true)
|-- value1: string (nullable = true)
|-- value2: integer (nullable = false)
Есть ли способ заставить его работать как инструкция CQL без изменения Datamodel?
Похож на ошибку со статическими столбцами, вы должны подать Jira – RussS