cassandra - 如何将 RDD 插入(不保存或更新)到 Cassandra 中?

标签 cassandra apache-spark

我正在使用 Apache SparkCassandra ,我想用 spark-cassandra-connector 将我的 RDD 保存到 Cassandra .

代码如下:

def saveToCassandra(step: RDD[(String, String, Date, Int, Int)]) = {
  step.saveToCassandra("keyspace", "table")
}

这在大多数情况下都可以正常工作,但会覆盖数据库中已经存在的数据。我不想覆盖任何数据。这有可能吗?

最佳答案

我的做法是:

rdd.foreachPartition(x => connector.WithSessionDo(session => {
  someUpdater.UpdateEntries(x, session)
  // or
  x.foreach(y => someUpdater.UpdateEntry(y, session))
}))

上面的连接器CassandraConnector(sparkConf)

它不如简单的 saveToCassandra 好用,但它允许细粒度控制。

关于cassandra - 如何将 RDD 插入(不保存或更新)到 Cassandra 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27568513/

相关文章:

c# - Cassandra 允许在 C# 中进行过滤

cassandra - 在 Cassandra 中将 128 位 int 转换为行键

mongodb - NoSQL(Cassandra/Mongodb)与 RDBMS

hadoop - YARN 上的 Spark : execute driver without worker

apache-spark - Spark 中的“ map 端”聚合

Cassandra插入 bool 错误

java - 当我们尝试检索大数据时 Cassandra 服务器崩溃

java - LSH Spark 永远停留在 approxSimilarityJoin() 函数

apache-spark - 如何在spark查询中不硬编码任何列名的情况下检查一行的所有列是否为空?

scala - 如何在scala中修复foreach()缺少的参数类型