apache-spark - 从文件加载时 Spark 是否将 DataFrame 保存在内存中?

标签 apache-spark apache-spark-sql in-memory

如果我像这样创建一个数据框:

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/

相关文章:

apache-spark - 停止在 Kubernetes 集群上运行的 Spark 作业的最优雅/正确的方法是什么?

java - 类型不匹配 : cannot convert from Iterator<String> in Java Spark

python - 如何动态链接 Pyspark 中的条件?

performance - 内存 H2 db 的单元测试变得非常慢

Java - 从 SFTP 直接下载到内存,无需写入文件

python - PySpark/HIVE : append to an existing table

java - Java 中 Spark Dataframe 的直方图

python - 属性错误 : module 'pandas' has no attribute 'to_csv'

apache-spark - Spark 流: How can I add more partitions to my DStream?

gradle - Netflix Conductor-java.exe错误= 206文件名或扩展名太长