从Cassandra读取并使用Spark写入Cassandra(大块)

时间:2016-04-14 13:54:22

标签: apache-spark batch-processing spark-dataframe spark-cassandra-connector

我想在Spark中执行一个大型进程,试图避免使用Spark Streaming。 我需要从Cassandra读取,操作数据并写入另一个Cassandra表。

我使用数据框作为源表,dataframe.rdd;我得到一个RDD来应用地图来操纵行,然后用saveToCassandra将RDD保存到cassandra。

Spark读取所有数据,应用地图然后写入所有数据。这会导致大量的HDD缓存,如果可能的话,我希望避免使用。

有没有办法以块的形式执行所有操作(读取,修改,写入),而不是读取整个表,然后才写入所有数据?

我的代码:

val foo =  df.rdd.map { row =>
    val a = foo(row) //Transform row to scala case class
    function(a) //Return manipulated data
}

foo.repartitionByCassandraReplica(...).saveToCassandra(...)

0 个答案:

没有答案