除非另有说明,否则A​​pache Spark DataFrame是否会为每次处理从DB加载数据,还是使用相同的数据?

时间:2015-08-13 09:21:03

标签: hadoop apache-spark apache-spark-sql

我们有一个用例,我们需要搜索满足特定条件的特定记录。我们需要识别记录的这些条件有多种。我们计划使用apache Spark Dataframes。 Apache Spark数据帧是否为我们计划执行的每次搜索加载来自db的表数据,或者加载&在火花簇节点之间分配表数据一次,然后在这些节点上运行搜索条件,直到明确告知从db加载数据?

1 个答案:

答案 0 :(得分:2)

如果使用.cache()或.persist()命令创建Dataframe,那么它会尝试将数据帧保留在内存中。

如果您不使用.cache创建它,那么它将根据需要从源数据集中读取数据。

如果没有足够的可用内存来保存缓存中的完整数据集,那么Spark会动态重新计算一些块。

如果您的源数据集不断变化,那么您可能希望首先创建一个相当静态的导出数据集。

查看Spark RDD persist documentation(DataFrames的相同内容),以便更好地了解您可以执行的操作。