如果我像这样创建一个数据框:
val usersDF = spark.read.csv("examples/src/main/resources/users.csv")
spark 实际上是否将数据(从 csv 文件)加载(/复制)到内存中,或者作为分布式数据集加载到底层文件系统中?
我问这个问题是因为加载 df 后,底层文件数据的任何更改都不会反射(reflect)在针对数据帧的查询中。 (当然,除非通过调用上面的代码行再次重新加载数据帧。
我正在 Databricks 笔记本上使用交互式查询。
最佳答案
除非您对该文件执行操作,否则该文件不会加载到内存中,并且当执行计划中发生操作时,您将看到文件加载到内存之前的所有内容。
如果已经对文件执行了操作,并且在此期间对文件进行了任何修改,那么您将看到第一次执行的缓存结果(如果它能够适合内存)。
关于apache-spark - 从文件加载时 Spark 是否将 DataFrame 保存在内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58552206/