Spark и Cassandra: требование не выполнено: столбцы не найдены в классе com.datastax.spark.connector.japi.CassandraRow: [mycolumn ...] - PullRequest
0 голосов
/ 06 марта 2020

У меня есть объект CassandraRow, который содержит значения строки. Я прочитал это из одной таблицы. Я хочу записать этот же объект в другую таблицу. Но затем я получаю эту ошибку:

требование не выполнено: столбцы не найдены в классе com.datastax.spark.connector.japi.CassandraRow: [myColumn1, myColumns2, ...]

Я попытался передать свое собственное отображение, создав карту и передав ее в функцию. Это мой код:

CassandraRow row = fetch();

Map<String, String> mapping = Map.of("myColumn1", "myColumn1", "myColumns2", "myColumns2"....);

JavaSparkContext ctx = new JavaSparkContext(conf);

JavaRDD<CassandraRow> insightRDD = ctx.parallelize(List.of(row));

CassandraJavaUtil.javaFunctions(insightRDD).writerBuilder("mykeyspace", "mytable",
            CassandraJavaUtil.mapToRow(CassandraRow.class, mapping)).saveToCassandra(); //I also tried without mapping

Любая помощь приветствуется. Я попробовал подход POJO, и он работает. Но я не хочу ограничиваться созданием POJO. Мне нужен обобщенный c подход, который бы работал с любой таблицей и любой строкой.

1 Ответ

0 голосов
/ 08 марта 2020

Я не смог найти способ обобщить свое решение, используя Apache Spark. Поэтому я использую драйвер Datastax Java для Apache Cassandra и написал SQL запросов. Этого было достаточно для меня.

...