我正在使用以下用于Apache Beam的库来运行数据流作业,以从BigQuery读取数据并存储/写入到Cassandra。
由于beam-sdks-java-io-cassandra> 2.3版本支持saveAsync,因此我已将所有库升级到2.6.0。
库更新后,在将数据插入/保存到Cassandra时出现以下错误。
java.lang.NoSuchMethodError: com.datastax.driver.mapping.Mapper.saveAsync(Ljava/lang/Object;)Lorg/apache/beam/repackaged/beam_sdks_java_io_cassandra/com/google/common/util/concurrent/ListenableFuture;
at org.apache.beam.sdk.io.cassandra.CassandraServiceImpl$WriterImpl.write(CassandraServiceImpl.java:435)
at org.apache.beam.sdk.io.cassandra.CassandraIO$WriteFn.processElement(CassandraIO.java:493)
这似乎是来自Gauva和Cassandra Driver的ListenableFuture问题。
答案 0 :(得分:2)
我对此有一种解决方法。使用beam-sdks-java-io-cassandra-2.4.0。 我正在努力解决这个问题。其他一些东西...将在这里更新。
更新:最有可能发现此问题。将修复程序推送到my own fork。但是,可能需要一些时间才能将其制作成PR并由Beam的人发布...如果有人想使用我构建的版本-您可以查看如何it's done here
答案 1 :(得分:-1)