Невозможно использовать Java-класс для отображения в Spark-Cassandra-разъем - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь использовать класс Java в сопоставлении таблицы Cassandra для запуска RDD, для чего я сталкиваюсь с проблемой, что Cassandra не может создать запрос для извлечения данных.

Согласнопо этой ссылке https://github.com/datastax/spark-cassandra-connector/blob/master/doc/6_advanced_mapper.md, класс должен быть сериализуемым и иметь 'getters' и 'setters' как минимум для столбцов первичного ключа таблицы, которую вы пытаетесь отобразить.

Итак, что я сделалЯ создал класс Java, создал открытые методы получения и установки для каждого поля, сопоставил класс с сопутствующим объектом Scala и использовал его для отображения таблицы Кассандры при извлечении данных в rdd.

Я добавилкод в изображении ссылки.

  1. Java класс
  2. Mapper
  3. Получение данных
  4. Исключение
  5. Классы Scala, которые не дают ошибок

Все вышеперечисленное работает без проблем при использовании scalaклассы

1 Ответ

0 голосов
/ 24 апреля 2019

это не сработает для вас - класс, который вы предоставляете, не имеет ни одного из полей, которые есть в вашей таблице.Класс mapper анализирует ваш класс POJO и извлекает все методы получения и установки и использует их для поиска имен полей в базе данных.mapper удаляет префиксы get/set/is из имен методов, строчные буквы оставляют имя метода и используют его в качестве имени поля.

Вам необходимо определить свой класс POJO, чтобы иметь поля (и сеттеры / геттеры)Отформатируйте минимум полей первичного ключа таблицы.

...