如何在Spark 2.3.1 API中使用蓄电池

时间:2018-10-30 03:21:13

标签: scala apache-spark apache-spark-sql datastax databricks

我在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中的每一行实现累加器增量...

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

Spark的累加器通常用于您编写的转换中,不要期望spark cassandra连接器会为您提供类似的东西。

但是总的来说-如果您的工作顺利完成,则意味着数据已正确写入数据库。

如果要检查数据库中实际有多少行,则需要对数据库中的数据进行计数-可以使用spark cassandra连接器的cassandraCount方法。这样做的主要原因-您的DataFrame中可能有多行可以映射到单个Cassandra行中(例如,如果您错误地定义了主键,那么多行都有它)。