spark和cassandra:要求失败:在com.datastax.spark.connector.japi.cassandrarow类中找不到列:[mycolumn…]

jei2mxaa  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(348)

我有一个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上。我想要一个通用的方法,可以处理任何表和任何行。

z2acfund

z2acfund1#

我找不到使用apachespark来概括我的解决方案的方法。所以我为ApacheCassandra使用datastax java驱动程序并编写sql查询。这对我来说已经足够普通了。

相关问题