我们有一个用例,我们需要搜索满足特定条件的特定记录。我们需要识别记录的这些条件有多种。我们计划使用apache Spark Dataframes。 Apache Spark数据帧是否为我们计划执行的每次搜索加载来自db的表数据,或者加载&在火花簇节点之间分配表数据一次,然后在这些节点上运行搜索条件,直到明确告知从db加载数据?
答案 0 :(得分:2)
如果使用.cache()或.persist()命令创建Dataframe,那么它会尝试将数据帧保留在内存中。
如果您不使用.cache创建它,那么它将根据需要从源数据集中读取数据。
如果没有足够的可用内存来保存缓存中的完整数据集,那么Spark会动态重新计算一些块。
如果您的源数据集不断变化,那么您可能希望首先创建一个相当静态的导出数据集。
查看Spark RDD persist documentation(DataFrames的相同内容),以便更好地了解您可以执行的操作。