Spark 和 Cassandra:要求失败:在 class com.datastax.spark.connector.japi.CassandraRow 中找不到列:[mycolumn...]
Spark and Cassandra: requirement failed: Columns not found in class com.datastax.spark.connector.japi.CassandraRow: [mycolumn...]
我有一个包含行值的 CassandraRow 对象。我是从一个 table 上读到的。我想将同一个对象写入另一个 table。但后来我得到这个错误:
requirement failed: Columns not found in class com.datastax.spark.connector.japi.CassandraRow: [myColumn1, myColumns2, ...]
我试图通过创建一个 Map 并将其传递到函数中来传递我自己的映射。这是我的代码:
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。我想要一种适用于任何 table 和任何行的通用方法。
我找不到使用 Apache Spark 概括我的解决方案的方法。因此,我使用 Datastax Java Apache Cassandra 驱动程序并编写了 SQL 查询。这对我来说已经足够通用了。
我有一个包含行值的 CassandraRow 对象。我是从一个 table 上读到的。我想将同一个对象写入另一个 table。但后来我得到这个错误:
requirement failed: Columns not found in class com.datastax.spark.connector.japi.CassandraRow: [myColumn1, myColumns2, ...]
我试图通过创建一个 Map 并将其传递到函数中来传递我自己的映射。这是我的代码:
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。我想要一种适用于任何 table 和任何行的通用方法。
我找不到使用 Apache Spark 概括我的解决方案的方法。因此,我使用 Datastax Java Apache Cassandra 驱动程序并编写了 SQL 查询。这对我来说已经足够通用了。