java - Spark 和 Cassandra:要求失败:在类 com.datastax.spark.connector.japi.CassandraRow 中找不到列:[mycolumn...]
问题描述
我有一个 CassandraRow 对象,其中包含一行的值。我从一张桌子上读到它。我想将同一个对象写入另一个表。但后来我得到这个错误:
要求失败:在类 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。我想要一种适用于任何表格和任何行的通用方法。
解决方案
我找不到使用 Apache Spark 概括我的解决方案的方法。所以我使用 Datastax Java Driver for Apache Cassandra 并编写 SQL 查询。这对我来说已经足够通用了。
推荐阅读
- jenkins - 如何阻止 Jenkins 作业在声明性管道中获取执行者?
- mysql - Javers - 异步提交 - Spring boot - Hibernate
- variables - XSLT:变量和“空”标签
- php - Zend 框架中的模块名称是否被认为是小写的?
- python - 神秘时间转换(熊猫和日期时间)
- jpa - 扩展使用 @MappedSuperClass 注释映射的 Super 类的问题
- android - 材质组件 TextInputEditText 底线边距
- sql - SQL 分解一个 int 并将每个数字相乘
- javascript - 如何使用 JS 将 blob 对象显示为图像
- angular - lodash - _.groupBy 在用它创建数组之前对结果进行排序