Spark是否会使用新的数据值自动缓存任何时间间隔的更新?

时间:2015-08-21 07:14:17

标签: caching cassandra pyspark

我正在使用pyspark和cassandra,并使用cache()函数缓存数据。 我想知道每次在cassandra中更新数据时缓存是否会自动更新?

1 个答案:

答案 0 :(得分:1)

RDD是不可变的,因此一旦创建了RDD,它的内容就不会改变。如果从Cassandra表创建RDD,则RDD是创建RDD时Cassandra中数据的快照。

当你告诉spark缓存一个RDD时,你告诉spark重用该RDD的内容,而不是在下次你在spark动作中使用它时创建一个新的RDD。

如果您希望每次使用时都从Cassandra刷新RDD中的数据,那么您就不想缓存它。或者,当您想要从Cassandra刷新数据时,可以使用spark unpersist()函数。这将导致spark在下次使用时将所有Cassandra数据重新读入新的RDD。

因此,它不会只读取自上次读取以来已更改的行,而是所有这些行。如果表很大,这将大大降低性能,但您将获得最新数据。