我有一个cassandrarow对象,它包含一行的值。我是从一张table上读的。我想把同一个对象写到另一个表中。但是我得到了一个错误:
要求失败:在com.datastax.spark.connector.japi.cassandrarow类中找不到列:[mycolumn1,mycolumns2,…]
我试图通过创建一个Map并在函数中传递它来传递自己的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上。我想要一个通用的方法,可以处理任何表和任何行。
1条答案
按热度按时间z2acfund1#
我找不到使用apachespark来概括我的解决方案的方法。所以我为ApacheCassandra使用datastax java驱动程序并编写sql查询。这对我来说已经足够普通了。