我在Cassandra 3.x中使用spark-sql_2.11-2.3.1版本。 我需要提供一个具有
的验证功能 column_family_name text,
oracle_count bigint,
cassandra_count bigint,
create_timestamp timestamp,
last_update_timestamp timestamp,
update_user text
同样,我需要计算成功插入的记录计数,即要填充的cassandra_count,为此,我想利用火花累加器。但是很遗憾,我无法找到带有spark-sql_2.11-2.3.1版本的必需的API示例。
以下是我保存到cassandra片段
o_model_df.write.format("org.apache.spark.sql.cassandra")
.options(Map( "table" -> columnFamilyName, "keyspace" -> keyspace ))
.mode(SaveMode.Append)
.save()
这里是如何为成功保存到Cassandra中的每一行实现累加器增量...
任何帮助都会非常感激。
答案 0 :(得分:0)
Spark的累加器通常用于您编写的转换中,不要期望spark cassandra连接器会为您提供类似的东西。
但是总的来说-如果您的工作顺利完成,则意味着数据已正确写入数据库。
如果要检查数据库中实际有多少行,则需要对数据库中的数据进行计数-可以使用spark cassandra连接器的cassandraCount方法。这样做的主要原因-您的DataFrame中可能有多行可以映射到单个Cassandra行中(例如,如果您错误地定义了主键,那么多行都有它)。